Xoay văn bản ở góc tùy ý
Các đối tượng thuộc loại văn bản — nhãn OBJ_TEXT
(trong tọa độ trích dẫn) và bảng OBJ_LABEL
(trong tọa độ màn hình) — cho phép bạn xoay nhãn văn bản ở một góc tùy ý. Để làm điều này, có thuộc tính OBJPROP_ANGLE
kiểu double
. Nó chứa góc tính bằng độ so với vị trí bình thường của đối tượng. Giá trị dương xoay đối tượng ngược chiều kim đồng hồ, còn giá trị âm xoay theo chiều kim đồng hồ.
Tuy nhiên, cần lưu ý rằng các góc có chênh lệch là bội số của 360 độ thì giống nhau, tức là ví dụ, +315 và -45 là như nhau. Việc xoay được thực hiện quanh điểm neo trên đối tượng (mặc định là góc trên bên trái).
Xoay các đối tượng OBJ_LABEL và OBJ_TEXT theo các góc là bội số của 45 độ
Bạn có thể kiểm tra hiệu ứng của thuộc tính OBJPROP_ANGLE
trên một đối tượng bằng script ObjectAngle.mq5
. Nó tạo một nhãn văn bản OBJ_LABEL
ở giữa cửa sổ, sau đó bắt đầu xoay định kỳ 45 độ cho đến khi người dùng dừng quá trình.
void OnStart()
{
const string name = "ObjAngle";
ObjectCreate(0, name, OBJ_LABEL, 0, 0, 0);
const int centerX = (int)ChartGetInteger(0, CHART_WIDTH_IN_PIXELS) / 2;
const int centerY = (int)ChartGetInteger(0, CHART_HEIGHT_IN_PIXELS) / 2;
ObjectSetInteger(0, name, OBJPROP_XDISTANCE, centerX);
ObjectSetInteger(0, name, OBJPROP_YDISTANCE, centerY);
ObjectSetInteger(0, name, OBJPROP_ANCHOR, ANCHOR_CENTER);
int angle = 0;
while(!IsStopped())
{
ObjectSetString(0, name, OBJPROP_TEXT, StringFormat("Angle: %d°", angle));
ObjectSetDouble(0, name, OBJPROP_ANGLE, angle);
angle += 45;
ChartRedraw();
Sleep(1000);
}
ObjectDelete(0, name);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Văn bản hiển thị giá trị hiện tại của góc.