SetSymbolAngle method (LineStyleElement)

Метод задает угол поворота символа объекту LineStyleElement.

Применяется к:

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 Sub

Python:

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))