Метод задает угол поворота символа объекту LineStyleElement.
Visual Basic:
Sub SetSymbolAngle(degAngle As Double)
degAngle - угол поворота символа в радианах.
Угол задается в радианах, хотя параметр назван degAngle: поворот элементом на π/2 соответствует повороту символа на 90 градусов методом Draw объекта Symbol, поворот на π - на 180 градусов. Положительный угол поворачивает символ против часовой стрелки.
Метод хранит угол с точностью до полного оборота: от значения отнимается столько раз по 2π, сколько в нем помещается, а знак сохраняется. Поэтому число, заданное в градусах, превращается в совсем другой угол: оно читается как радианы, и от него отнимаются полные обороты. Градусы перед вызовом переводят в радианы - умножают на π/180.
У только что созданного элемента угол нулевой.
Пример собирает стиль из символов, повернутых на 90 градусов.
Visual Basic:
Sub LineStyleElement_SetSymbolAngle 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set lsd = CreateObject("ZuluLib.LineStyleDef") Set lse = CreateObject("ZuluLib.LineStyleElement") lse.SetSymbol L.Symbols.ItemById(9) lse.SetSymbolScale 1 lse.SetSymbolStep 40 'Угол задается в радианах: 90 градусов - это пи пополам Pi = 4 * Atn(1) lse.SetSymbolAngle Pi / 2 lsd.AddSymbolElement lse S = "Угол символа в элементе: " & lsd.StyleElements.Item(0).GetSymbolAngle S = S & vbCrLf & "в градусах: " & Round(lsd.StyleElements.Item(0).GetSymbolAngle * 180 / Pi) S = S & vbCrLf & "новый стиль получил Id " & L.LineStyles.AddItem(lsd, -1) MsgBox S End SubPython:
import zulu import math def Macro_LineStyleElement_SetSymbolAngle(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active lsd = zulu.LineStyleDef() lse = zulu.LineStyleElement() lse.SetSymbol(L.Symbols.ItemById(9)) lse.SetSymbolScale(1) lse.SetSymbolStep(40) # Угол задается в радианах: 90 градусов - это пи пополам lse.SetSymbolAngle(math.pi / 2) lsd.AddSymbolElement(lse) angle = lsd.StyleElements.Item(0).GetSymbolAngle() print("Угол символа в элементе:", angle) print("в градусах:", round(math.degrees(angle))) print("новый стиль получил Id", L.LineStyles.AddItem(lsd, -1))