![]() |
![]() |
Segment.FindParamOffset
Function FindParamOffset(AbsoluteOffset As Double, ParamOffset As Double, [Remainder As Double]) As Boolean
Member of Segment
The FindParamOffset method returns the parametric offset for a specified absolute offset.
If the segment is shorter than the specified offset, the function returns False, and the remainder of the offset is returned in the Remainder parameter. Otherwise the function returns True, and the ParamOffset parameter returns the parametric offset for the segment.
The following code example duplicates a shape and distributes it along a path. The shape and the path must be selected, and the path must be selected last.
Sub Test() Dim sr As ShapeRange Dim sPath As Shape, sShape As Shape, sWork As Shape Dim dWidth As Double, Offset As Double, Rest As Double, t As Double Dim x As Double, y As Double, a As Double, sx As Double, sy As Double Dim seg As Segment Set sr = ActiveSelectionRange If sr.Count <> 2 Then MsgBox "Please select two shapes", vbCritical Exit Sub End If If sr(1).Type <> cdrCurveShape Then MsgBox "Last selected shape must be a curve", vbCritical Exit Sub End If Set sPath = sr(1) Set sShape = sr(2) ActiveDocument.ReferencePoint = cdrCenter dWidth = sShape.SizeWidth sShape.GetPosition sx, sy Offset = dWidth / 2 For Each seg In sPath.Curve.Segments While seg.FindParamOffset(Offset, t, Rest) seg.GetPointPositionAt x, y, t, cdrParamSegmentOffset a = seg.GetTangentAt(t, cdrParamSegmentOffset) Set sWork = sShape.Duplicate(x - sx, y - sy) sWork.Rotate a Offset = Offset + dWidth Wend Offset = Rest Next seg End Sub
![]() |
![]() |
![]() |
Copyright 2007 Corel Corporation. All rights reserved.