## 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