## PlotCurve

### Introduced

v1.0

### Description

Plots the trajectory of an object into a curve. The plotted curve is a cubic curve created by interpolation.

### Scripting Syntax

    oReturn = PlotCurve( [InputObjs], Name, [StartFrame], [EndFrame], [StepFrame] );

### Return Value

Returns the plotted NURBS CurveList as an XSICollection of one X3DObject.

### Parameters

Parameter | Type | Description
--- | --- | ---
InputObjs | String | List of objects whose trajectories are plotted. Default Value: Current Selection
Name | String | Name of the curve.
StartFrame | Integer | First frame to plot Default Value: 0
EndFrame | Integer | Last frame to plot Default Value: 0
StepFrame | Integer | Step between frames Default Value: 1

### Examples

#### 1. VBScript Example

    'This example shows how to plot a curve from an animation
    NewScene , false
    'Create a simple primitive and animate it.
    CreatePrim "Cone", "MeshSurface"
    SaveKey "cone.kine.local.posx,cone.kine.local.posy,cone.kine.local.posz", 1
    SetValue "PlayControl.Key", 50
    SetValue "PlayControl.Current", 50
    Translate , 5, 0, 0, siAbsolute, siParent, siObj, siX
    SaveKey "cone.kine.local.posx,cone.kine.local.posy,cone.kine.local.posz", 50
    SetValue "PlayControl.Key", 100
    SetValue "PlayControl.Current", 100
    Translate , 0, 0, 5, siAbsolute, siParent, siObj, siZ
    SaveKey "cone.kine.local.posx,cone.kine.local.posy,cone.kine.local.posz", 100
    'Plot from frame 0 t0 100 by step of 5. Creates curve MyPlot
    PlotCurve "Cone", "MyPlot", 0, 100, 5

#### 2. VBScript Example

    ' This example shows plotting curves on components (points) of an object.
    ' The curves create trails of each chosen component through space.
    NewScene , False
    ' Create an object for our example.
    set oObj = CreatePrim( "Torus", "MeshSurface" )
    SetValue oObj & ".polymsh.geom.subdivu", 6
    SetValue oObj & ".polymsh.geom.subdivv", 3
    ' Put some animation on it.
    SaveKey oObj & "/kine.local.posx,kine.local.posy,kine.local.posz", 1
    SaveKey oObj & "/kine.local.rotx,kine.local.roty,kine.local.rotz", 1
    Translate oObj, 10, 9, 0, siRelative, siView, siObj, siXYZ
    SaveKey oObj & "/kine.local.posx,kine.local.posy,kine.local.posz", 50
    LastFrame
    Translate oObj, 10, -9, 0, siRelative, siView, siObj, siXYZ
    SaveKey oObj & "/kine.local.posx,kine.local.posy,kine.local.posz", 100
    Rotate oObj, -161, -434, -18, siAbsolute, siLocal, siObj, siXYZ
    SaveKey oObj & "/kine.local.rotx,kine.local.roty,kine.local.rotz", 100
    ' Do the actual plotting of all the points in the mesh.
    ' Note: "Refresh" makes sure the animation is evaluated for the start
    ' frame, so we don't get trails from the "current" (end frame) position
    ' to the start position.
    FirstFrame
    refresh
    PlotCurve oObj & ".pnt[*]", "TorusPoints", 1, 100, 5

### See Also

PlotShape CreateCurve