Размеры графика

 

1 График - ограниченная черным (на рисунке ниже) прямоугольником область. 

long ChartWidth=ChartGetInteger(0,CHART_WIDTH_IN_PIXELS);
long ChartHeight=ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS);
Print(ChartWidth+" "+ChartHeight);

Данный код для рисунка ниже выводит результат Width=552 Height=282. Верно ли это?

Если включать в размер границы (пикселы) черного прямоугольника, то по рисунку ниже результат должен быть Width=553 Height=283.

Если границы прямоугольника не включать, то результат должен быть Width=551 Height=281.

В MQL5 же похоже сделано так, что в размер включается пиксел левой и верхней границы прямоугольника, а пиксел правой и нижней границы не включается.

 

2 Если поместить на график объект "Графическая метка" и указать расстояние по X=0 и расстояние по Y=0 c углом привязки Left Upper, то данный объект зайдет за область графика по оси X на 3 пиксела, по оси Y на один пиксел. Хотя должен быть полностью виден на графике.


Вывод. По моему мнению в размер графика не должны включать границы прямоугольника, а точка с координатой (0, 0) (угол привязки Left Upper) НЕ ДОЛЖНА ЛЕЖАТЬ на этой границе. Иначе объект не полностью виден, и приходится указывать координаты отличные от нуля. Что странное - по оси X приходится сдвигать объект на 3 пикселя, в то время как по оси Y - на 1 пиксел.

P.S. В качестве рисунка для объекта "Графическая метка" использовался "dollar.bmp" из папки Images. 

 
MRoVas писал(а) # :

1 График - ограниченная черным (на рисунке ниже) прямоугольником область. 

Данный код для рисунка ниже выводит результат Width=552 Height=282. Верно ли это?


Да, верно.

В размеры окна включается рамка, что дает +2 пиксела к рабочему пространству окна. Кроме того, счет начинается с нуля, а не с 1.


А вот позиционирование объектов с абсолютными точками привязки на самом деле с ошибкой - обязательно исправим в следующем билде.

 
Абсолютное позиционирование объектов на чарте исправили. Будет в сегодняшнем билде.

Причина обращения: