【CorelDraw VBA 003例】 利用虚拟图形创建形状([CorelDRAW VBA 003 example] create shapes using virtual graphics)

Sub CreateMyVirtualCurve()
    '##利用虚拟图形创建形状
    Dim s As Shape, crv As Curve
    Dim x As Double, y As Double
    Dim arrPoints(9, 1) As Double
    arrPoints(0, 0) = 162.4175222: arrPoints(0, 1) = 0.750376435
    arrPoints(1, 0) = 162.1904178: arrPoints(1, 1) = 1.42190801
    arrPoints(2, 0) = 161.8497645: arrPoints(2, 1) = 1.948110991
    arrPoints(3, 0) = 161.4460634: arrPoints(3, 1) = 2.285272734
    arrPoints(4, 0) = 161.0384773: arrPoints(4, 1) = 2.41926736
    arrPoints(5, 0) = 160.6855104: arrPoints(5, 1) = 2.367701481
    arrPoints(6, 0) = 160.4357975: arrPoints(6, 1) = 2.177051589
    arrPoints(7, 0) = 160.3204565: arrPoints(7, 1) = 1.915245416
    arrPoints(8, 0) = 160.3482122: arrPoints(8, 1) = 1.66085887
    arrPoints(9, 0) = 160.5040603: arrPoints(9, 1) = 1.490634456
    x = arrPoints(0, 0)
    y = arrPoints(0, 1)
    Set crv = New Curve 'Create our curve in Memory
    Set sp = crv.CreateSubPath(x, y)
    For i = 1 To 9
        x = arrPoints(i, 0)
        y = arrPoints(i, 1)
        sp.AppendCurveSegment x, y
    Next i
    sp.Closed = False
    'Take our curve in memory and create a virtual shape
    Set s = ActiveVirtualLayer.CreateCurve(crv)
    'Smooth all the nodes
    s.Curve.Nodes.All.SetType cdrSmoothNode
    'Log the newly created virual shape
    ActiveDocument.LogCreateShape s
End Sub
————————
Sub CreateMyVirtualCurve()
    '##利用虚拟图形创建形状
    Dim s As Shape, crv As Curve
    Dim x As Double, y As Double
    Dim arrPoints(9, 1) As Double
    arrPoints(0, 0) = 162.4175222: arrPoints(0, 1) = 0.750376435
    arrPoints(1, 0) = 162.1904178: arrPoints(1, 1) = 1.42190801
    arrPoints(2, 0) = 161.8497645: arrPoints(2, 1) = 1.948110991
    arrPoints(3, 0) = 161.4460634: arrPoints(3, 1) = 2.285272734
    arrPoints(4, 0) = 161.0384773: arrPoints(4, 1) = 2.41926736
    arrPoints(5, 0) = 160.6855104: arrPoints(5, 1) = 2.367701481
    arrPoints(6, 0) = 160.4357975: arrPoints(6, 1) = 2.177051589
    arrPoints(7, 0) = 160.3204565: arrPoints(7, 1) = 1.915245416
    arrPoints(8, 0) = 160.3482122: arrPoints(8, 1) = 1.66085887
    arrPoints(9, 0) = 160.5040603: arrPoints(9, 1) = 1.490634456
    x = arrPoints(0, 0)
    y = arrPoints(0, 1)
    Set crv = New Curve 'Create our curve in Memory
    Set sp = crv.CreateSubPath(x, y)
    For i = 1 To 9
        x = arrPoints(i, 0)
        y = arrPoints(i, 1)
        sp.AppendCurveSegment x, y
    Next i
    sp.Closed = False
    'Take our curve in memory and create a virtual shape
    Set s = ActiveVirtualLayer.CreateCurve(crv)
    'Smooth all the nodes
    s.Curve.Nodes.All.SetType cdrSmoothNode
    'Log the newly created virual shape
    ActiveDocument.LogCreateShape s
End Sub