Curve.Point method (Visio)
Returns a point at a position along a curve.
Syntax
expression.Point (t, x, y)
expression A variable that represents a Curve object.
Parameters
Name | Required/Optional | Data type | Description |
---|---|---|---|
t | Required | Double | The value in the curve's parameter domain to evaluate. |
x | Required | Double | Returns x value of curve at t. |
y | Required | Double | Returns y value of curve at t. |
Return value
Nothing
Remarks
A Curve object is described in terms of its parameter domain, which is the range [Start(),End()]. The Point method of a Curve object returns the x,y coordinates at position t, which is any position along the curve's path. The Point method can be used to extrapolate the curve's path outside [Start(),End()].
Example
This Microsoft Visual Basic for Applications (VBA) macro draws a circle (a special case of an oval) on the document's active page. Then it iterates through the Paths collection of the circle and each Path object to display the coordinates of various points along the curve. Because the shape drawn is a circle, it is a Curve object that has only one path.
Sub Point_Example()
Dim vsoShape As Visio.Shape
Dim vsoPaths As Visio.Paths
Dim vsoPath As Visio.Path
Dim vsoCurve As Visio.Curve
Dim dblEndpoint As Double
Dim dblXCoordinate As Double
Dim dblYCoordinate As Double
Dim intOuterLoopCounter As Integer
Dim intInnerLoopCounter As Integer
'Get the Paths collection for this shape.
Set vsoPaths = ActivePage.DrawOval(1, 1, 4, 4).Paths
'Iterate through the Path objects in the Paths collection.
For intOuterLoopCounter = 1 To vsoPaths.Count
Set vsoPath = vsoPaths.Item(intOuterLoopCounter)
Debug.Print "Path object " & intOuterLoopCounter
'Iterate through the curves in the Path object.
For intInnerLoopCounter = 1 To vsoPath.Count
Set vsoCurve = vsoPath(intInnerLoopCounter)
Debug.Print "Curve number " & intInnerLoopCounter
'Display the endpoint of the curve
dblEndpoint = vsoCurve.End
Debug.Print "Endpoint= " & dblEndpoint
'Use the Point method to determine the
'coordinates of an arbitrary point on the curve
vsoCurve.Point (dblEndpoint/2), dblXCoordinate, dblYCoordinate
Debug.Print "Point= " & dblXCoordinate, dblYCoordinate
Next intInnerLoopCounter
Debug.Print "This path has " & intInnerLoopCounter - 1 & " curve object(s)."
Next intOuterLoopCounter
Debug.Print "This shape has " & intOuterLoopCounter - 1 & " path object(s)."
End Sub
Support and feedback
Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.