Object Model Reference : Classes : S : SubPath : Methods : SubPath.GetCurvatureAt |
Function GetCurvatureAt([Offset As Double = 0.5], [OffsetType As cdrSegmentOffsetType = cdrRelativeSegmentOffset]) As Double
Member of SubPath
The GetCurvatureAt method returns the curvature of a subpath at a given point. The value of the curvature is the inverse of curvature radius, and it depends on the current document units.
Parameter
|
Description
|
Offset
|
Specifies the offset, in document units. This parameter is optional, and its default value is 0.5.
|
OffsetType
|
Specifies the offset type of the point, and returns cdrSegmentOffsetType. This parameter is optional, and its default value is cdrRelativeSegmentOffset (1).
|
The following VBA example draws a circle that touches the selected curve at the point that is 25% of the length of its first subpath and that has the same curvature as the curve in this point (thereby showing the curvature radius).
Sub Test() |
Dim c As Double, r As Double |
Dim x As Double, y As Double, pa As Double |
Dim sp As SubPath |
Set sp = ActiveShape.Curve.SubPaths(1) |
c = sp.GetCurvatureAt(0.25, cdrRelativeSegmentOffset) |
If Abs(c) < 0.00001 Then |
MsgBox "The curve is almost straight at this point", vbCritical |
Exit Sub |
End If |
sp.GetPointPositionAt x, y, 0.25, cdrRelativeSegmentOffset |
pa = sp.GetPerpendicularAt(0.25, cdrRelativeSegmentOffset) |
pa = pa * 3.1415926 / 180 |
r = 1 / c |
x = x + r * Cos(pa) |
y = y + r * Sin(pa) |
ActiveLayer.CreateEllipse2 x, y, r |
End Sub |
Copyright 2013 Corel Corporation. All rights reserved.