Previous Document Next Document

Object Model Reference : Classes : S : SubPath : Methods : SubPath.GetCurvatureAt


SubPath.GetCurvatureAt

Function GetCurvatureAt([Offset As Double = 0.5], [OffsetType As cdrSegmentOffsetType = cdrRelativeSegmentOffset]) As Double

Description

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).

VBA example

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

Previous Document Next Document Back to Top

Copyright 2013 Corel Corporation. All rights reserved.