Share via


Point Method [Visio 2003 SDK Documentation]

Returns a point at a position along a curve.

object**.Point**(t, x, y)

object     Required. An expression that returns a Curve object.

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.

Version added

5.0

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 of [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  

Applies to | Curve object

See Also | End property | PointAndDerivatives method | Points method | Start property