Object Model Reference : Classes : S : Segment : Methods : Segment.GetCurvatureAt |
Function GetCurvatureAt([Offset As Double = 0.5], [OffsetType As cdrSegmentOffsetType = cdrParamSegmentOffset]) As Double
Member of Segment
The GetCurvatureAt method returns a numerical value that indicates the curvature of a segment at a given point. The curvature value is the inverse of the curvature radius and depends on the current document units.
Parameter
|
Description
|
Offset
|
Specifies the offset, in document units, of the point on a segments subpath. This parameter is optional, and its default value is 0.5.
|
OffsetType
|
Specifies the type of offset. This parameter is optional, and its default value is cdrParamSegmentOffset (2).
|
The following VBA example draws a circle so that it touches the selected curve at the point that represents 25% of its length. This circle has the same curvature as the curve at this point; that is, it shows the curvature radius.
Sub Test() |
Dim c As Double, r As Double |
Dim x As Double, y As Double, pa As Double |
Dim seg As Segment |
Set seg = ActiveShape.Curve.Segments(1) |
c = seg.GetCurvatureAt(0.25, cdrRelativeSegmentOffset) |
If Abs(c) < 0.00001 Then |
MsgBox "The segment is almost straight at this point", vbCritical |
Exit Sub |
End If |
seg.GetPointPositionAt x, y, 0.25, cdrRelativeSegmentOffset |
pa = seg.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.