Получение координат существующей кривой "Безье" из Corel средствами VBA

  • Автор темы Автор темы it-sphere
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

it-sphere

Участник
Топикстартер
Сообщения
1
Реакции
0
Доброго времени суток.
Есть задача: получить координаты 4 точек (x, y) существующей кривой "Безье" (каждого её сегмента).
Обращаю внимание на то, что координаты 4 точек (x, y) нужно получать на каждый сегмент кривой, а не на всю кривую.
Нарисовать кривую можно либо инструментом Corel или программно...

Dim ce(5) As CurveElement
Dim crv As Curve
ce(0).ElementType = cdrElementStart
ce(0).PositionX = 0
ce(0).PositionY = 0
ce(1).ElementType = cdrElementLine
ce(1).NodeType = cdrSmoothNode
ce(1).PositionX = 1
ce(1).PositionY = 1
ce(2).ElementType = cdrElementControl
ce(2).PositionX = 2.5
ce(2).PositionY = 2

ce(3).ElementType = cdrElementControl
ce(3).PositionX = 3
ce(3).PositionY = 2
ce(4).ElementType = cdrElementCurve

ce(4).NodeType = cdrSmoothNode
ce(4).PositionX = 4
ce(4).PositionY = 1
ce(5).ElementType = cdrElementLine
ce(5).PositionX = 5
ce(5).PositionY = 0
Set crv = CreateCurve(ActiveDocument)
crv.CreateSubPathFromArray ce
ActiveLayer.CreateCurve crv

End Sub

Теперь нужно получить эти координаты обратно...
Особенно эти
ce(2).PositionX = 2.5
ce(2).PositionY = 2

ce(3).ElementType = cdrElementControl
ce(3).PositionX = 3
ce(3).PositionY = 2

Координаты начала линии я получаю.
Sub Macro7()
Dim crv As Curve
Set crv = ActiveShape.Curve
MsgBox "PositionX:" & ActiveShape.PositionX & vbCr & _
"PositionY:" & ActiveShape.PositionY & vbCr & _
"Другие характеристики кривой:" & vbCr & _
"Nodes: " & crv.Nodes.Count & vbCr & _
"Segments: " & crv.Segments.Count & vbCr & _
"Subpaths: " & crv.SubPaths.Count

End Sub

А дальше засада....
Подскажите куда копать?
 
Ответ: Получение координат существующей кривой "Безье" из Corel средствами VBA

Что-то не пойму сути проблемы. Курите документацию - в редакторе VBA почаще жмите F1. Curve.Nodes(i).PositionX Curve.Nodes(i).PositionY - координаты каждого узла кривой. Curve.Segments.EndingControlPointX , Curve.Segments.EndingControlPointY, Curve.Segments.EndingControlPointAngle, Curve.Segments.EndingControlPointLength, Curve.Segments.StartingControlPointX , Curve.Segments.StartingControlPointY, Curve.Segments.StartingControlPointAngle, Curve.Segments.StartingControlPointLength... - соответственно, параметры сегментов кривой Безье
 
Статус
Закрыто для дальнейших ответов.