Доброго времени суток.
Есть задача: получить координаты 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
А дальше засада....
Подскажите куда копать?
Есть задача: получить координаты 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
А дальше засада....
Подскажите куда копать?