Поворот текста на произвольный угол

Объекты текстовых типов — метка OBJ_TEXT (в котировочных координатах) и панель OBJ_LABEL (в экранных координатах) — позволяют повернуть надпись на произвольный угол. Для этой цели предусмотрено свойство OBJPROP_ANGLE типа double. Оно содержит угол в градусах относительно нормальной ориентации объекта. Положительные значения поворачивают объект против часовой стрелки, отрицательные — по часовой.

Однако следует иметь в виду, что углы с разницей, кратной 360 градусам, идентичны, то есть, например, +315 и -45 — это одно и то же. Поворот осуществляется вокруг точки привязки на объекте (по умолчанию, слева вверху).

Поворот объектов OBJ_LABEL и OBJ_TEXT на углы, кратные 45 градусам

Поворот объектов OBJ_LABEL и OBJ_TEXT на углы, кратные 45 градусам

Проверить влияние свойства OBJPROP_ANGLE на объект можно с помощью скрипта ObjectAngle.mq5. В нем создается текстовая надпись OBJ_LABEL в центре окна, после чего она начинает периодически поворачиваться на 45 градусов, пока пользователь не остановит процесс.

void OnStart()
{
   const string name = "ObjAngle";
   ObjectCreate(0nameOBJ_LABEL000);
   const int centerX = (int)ChartGetInteger(0CHART_WIDTH_IN_PIXELS) / 2;
   const int centerY = (int)ChartGetInteger(0CHART_HEIGHT_IN_PIXELS) / 2;
   ObjectSetInteger(0nameOBJPROP_XDISTANCEcenterX);
   ObjectSetInteger(0nameOBJPROP_YDISTANCEcenterY);
   ObjectSetInteger(0nameOBJPROP_ANCHORANCHOR_CENTER);
   
   int angle = 0;
   while(!IsStopped())
   {
      ObjectSetString(0nameOBJPROP_TEXTStringFormat("Angle: %d°"angle));
      ObjectSetDouble(0nameOBJPROP_ANGLEangle);
      angle += 45;
     
      ChartRedraw();
      Sleep(1000);
   }
   ObjectDelete(0name);
}

В тексте выводится текущее значение угла.