Menu

TPLT
Home
General Info

Tools

Figure
 Layer
 Axis
Frame
 Objects
 Subobjects Animations


Turbo Plot Home

Welcome to...

Turbo Plot !

The simplest and quickest tool to generate plots!

Features

  • x86
  • x64
  • A simple, easy, clean, and lite interface. Never waste your MBs in not needed designs.
  • 2D and 3D stuff and Direct3D stuff.
  • Creates nice, unaliased and vectorized graphs.
  • Create unlimited number of resizable figures
  • Create animated plots and save as swf files!!
  • GDI+/Direct3D based
  • Unlimited number of layers
  • Select any font,brush,pen, solid/gradient/texture/size brushes in any object!
  • 2D Objects plot:
    • Text
    • Axis
    • Point
    • Polyline
    • Polygon
    • Wave
    • Rectangle
    • Ellipse
    • Image
    • Grid
    • Function
    • Wave
    • Function Fourier Transform
    • Wave Fourier Transform
  • 3D Objects plot:
    • Camera Transform
    • Perspective Trasnform
    • Cube
    • 3D function
  • DirectX Plot
    • .X files
    • Box meshes
    • Apply custom translation/rotation to each object.
  • Output to screen, clipboard, BMP, JPG, GIF , PNG , EMF !
  • Save as EMF vector for PDF without aliasing!
  • Edit - on - fly the commands to create the plot!
  • Supports unlimited transforms:
    • Matrix
    • Rotation
    • Scaling
    • Shearing
    • Shifting
    • Zooming
    • Multiplying
  • < 1MB in size !!
  • Auto update when new version is uploaded.


General Information

Turbo Plot (TPLT) can draw objects in 3 different ways:

  • Interactively , from the menus and dialogs
  • Command line , from the command line
  • By opening a TPLXML file (which contains the command lines to create the figure)

For more on the command line, type HELP at it. All the available TPLT functions are also available through the command line, which is a powerful tool for advanced users.


Figure

A figure is a surface that draws your objects. Turbo Plot can draw any number of figures. A figure ID is a number that uniquely separates each figure from the others. A figure can save itself as an image, or as a TPLXML file (text file to be used later by TPLT to reproduce the figure).

A figure can also draw Direct3D objects.

Creating the figure

Use the menu to create a new figure. You can specify width and height, and the figure backcolor, and the DirectX status. You can also specify the number of frames if you plan to create an animated figure.

Direct3D figures

A Direct3D figure can also draw Direct3D objects (along with other items). Direct3D objects are created first. Currently you can draw a mesh box, or a mesh file (.X)

Own2D figures

A figure can specify the flag to transform 2D objects in either GDI+ way (default) or its own way. There are advantages and disadvantages in both methods:

  • GDI+ mode:
    • Allows transformation of any object
    • Can rotate an object only around 0,0
  • Own mode:
    • Can rotate an object around any origin
    • Cannot rotate all sorf of objects (Text, Rectangles and shapes containing curves)

In general, you will use GDI+ mode unless you want to do some very specific rotation.

SWF figures

A figure can have more than one frames, in which case they can be saved in the Adobe Flash Format SWF. Press F8 to render your figure to SWF.

Printing

Ctrl+P will print the current figure. You are given the option to print in the entire printer space (say, the whole A4), or 1:1.

Figure Menu

  • File - Saves or copies figure content.
    • Save image - Saves as JPG,BMP,GIF,PNG bitmap images, EMF metafile vector images, or SWF animated vector images).
    • Save TPLXML - Saves as text. TPLT can open these files and reproduce the figure they represent.
    • Copy image - Copies the figure bitmap to the clipboard.
    • Copy metafile - Copies the figure metafile (vectored image) to the clipboard. Note that the quality of the drawing copied depends on the application that you will paste the clipboard - for example, MS Word will paste the image in a high quality, whereas MS Paint will paste it with lower quality.
    • Copy text - Copies the xml text to the clipboard.
    • Print
  • Insert - Inserts objects to the figure.
    • Insert 2D - Insert 2D objects
    • Insert 3D - Insert 3D objects
    • Insert 4D - Insert 4D objects (Not yet implemented)
    • Insert Direct3D - Insert Direct3D objects
  • Edit - This menu allows you to edit a specific figure object
  • Target - This menu allows you to lock the target objects for which the next selected tool will be applied. The menu also allows to disable or delete the target objects.
  • Tools 2D - Tools to manipulate 2D objects. When holding down CONTROL or SHIFT, the tool is more precise.
    • Cross - Does nothing.
    • Move - Moves the locked objects.
    • Origin - Sets figure origin for further rotation (applies to all objects).
    • Rotate - Rotates the locked objects around the specified origin.
    • Scale - Scales X or Y axis of the figure.
  • Tools 3D - Tools to manipulate 3D objects .
    • Cross - Does nothing.
    • Move - Moves the locked objects .
    • Rotate - Rotates the locked objects.
    • Scale - Scales X or Y or Z axis of the figure.
  • Tools
    • Double Buffering - Used by default to prevent flickering, but drawing is slower. If your PC is slow and/or you want to transform or rotate or otherwise use the mouse a lot, you might temporarily disable it. Note that this doesn't affect the quality of the drawing itself.
    • Excellent Quality - Not yet implemented
    • High Quality - High quality antialiased drawing - default.
    • Low Quality - Low quality drawing. Use it when your PC is slow and you want to transform the figure. The saving and drawing quality is affected, so it is suggested that, before saving, to return to high quality mode.

When you select a tool, an additional menu appears and/or the mouse changes shape. You can use either the keyboard (Arrows or + or - along with Shift or Control) or your mouse to manipulate the locked objects.


Layer

A layer is a portion of the figure, specified in either absolute coordinates (for example 25,25,100,100) , or in relative coordinates (25%,25%,75%,75%).Any object can be drawn on a layer, in which case the object uses the specified layer coordinates to draw itself, rather than the coordinates of the entire figure.

For example, when you create a rectangle with 100% width, it will take the entire figure. If you specify a layer, it will take the 100% of the width of the layer (which may be same, less or even larger of the size of the figure).

Each layer has an ID , to be used in the AT subobject. The first layer you create has the id 1, the second 2 etc.

The command to create the layer is

LAYER fid top left width height

Percentages are supported, for example LAYER 1 0 0 50% 50%

You can press F4 to see the rectangle of the layers in a figure.


Axis

In 2D

A 2D axis is a map of the figure absolute width and height (for example 500 pixels) to a specific X and Y range. For example, if you draw a point at position 1,1 in a figure, it will take the absolute position 1,1 of the figure coordinates. If you draw a point at position 1,1 in an axis, the point will be drawn at the (1,1) position in the axis, wherever that position happens to be, depending on the axis parameters you have provided.

A 2D function plot must be drawn in a 2D axis, so you must create a 2D axis before you can plot a function.

If you specify it, axes are drawn with numbering. If you wish to create an axis but not draw it, you can specify a null brush for it.

In 3D

A 3D axis is simply a drawing of 3 axes, one for X, one for Y and one for Z. Unlike the 2D axis, which maps the axis coordinates to the entire figure, the 3D axis doesn't map anything because the 3D space is already mapped to the figure according to the specific 3D Transform .

Therefore, you need to create a 3D axis only if you want to draw the actual axes, for if you don't, a plot of a 3A function or a 3D function will be plotted according to its own 3D transformation. If the plot of a 3d object doesn't have any transformation but it uses a 3D axis, then this 3d object uses the axis' transformation.


Frame

A figure frame is only useful when you plan to save the figure as a SWF file. Saving as SWF is currently experimental. Frames can be inserted into a TPLXML file using the FRAME or the FRAMES command

FRAME <fid> <Sleep> <ClearFlag> or

FRAMES <fid> <nfr> <Sleep> <ClearFlag>

<Sleep> is the value to wait between each frame, in ms.
<ClearFlag> is 1 when the frame will clear anything shown in the previous frames.

See Animations for more.


Figure Objects

A figure object is something that is drawn to the figure. The following list contains all objects:

  • 2D Objects
    • Image
    • Axis
    • Point
    • Polyline
    • Polycurve
    • Rectangle
    • Ellipse
    • Arc
    • Pie
    • Bezier Curve
    • Open Curve
    • Closed Curve
    • Function 2D
  • 3D Objects
    • Point
    • Polyline
    • Polycurve
    • Cube
    • Sphere
    • Bezier Curve
    • Open Curve
    • Closed Curve
    • Function 3A
    • Function 3D
  • 4D Objects
    • Polyline
  • Direct3D Objecst
    • Mesh Box
    • Mesh File

Each of the object contains subobjects. A subobject can either be mandatory, or optional.


Figure Subobjects

A figure subobject is something that tells TPLT how to draw an object. The following list contains all subobjects:

  • AT
  • Split
  • Splitr
  • Splittr
  • Name
  • Brush
  • Pen
  • Font
  • Transform
  • 3DTransform
  • P1
  • P2
  • P3
  • P4
  • Morph

Some of the subobjects (like AT) are mandatory, some of them are optional, depending on the object. If you plan to use the command line interface to create plots, typing the name of the object (for example RECTANGLE) in the command line will show you information on the syntax and the mandatory or optional subobjects it might need.


ARC (Object)

The ARC object creates an arc.

Required Subobjects

  • AT - Define object position.
  • P4 - Specify arc's rectangle position. If an axis is specified, the rectangle indicates topleft and right bottom points. Otherwise, the rectangle indicates x,y, width and height of the ellipse.
  • P2 - Specify the two angles, starting and length of the arc.

Optional Subobjects

  • Transform - 2D Transformation
  • PEN - Selected Pen

Examples

Plot an arc to the entire figure

FIGURE 1
ARC at(1) p4(0,0,100%,100%) pen(3) p2(180,90)

Plot an arc in an axis

FIGURE 1
AXIS at(1) pen(2) brush(solid,0xFF0000) p4(-3,10,0.5,2) p4(-3,10,0.5,2)
ARC at(1,1) pen(1) p4(-5,-5,5,5)
p2(180,90)


AXIS (Object)

The AXIS object creates a 2D or a 3D axis system.

Required Subobjects

  • AT - Define object position. If axid in the AT suobject is 0, a new axis is created. Otherwise, the specified axis is replaced by this axis.
  • P4 - Range, spacing and numbering mode for X axis
  • P4 - Range, spacing and numbering mode for Y axis

Optional Subobjects

  • P4 - Range, spacing and numbering mode for Z axis (if 3D Axis)
  • FONT - Font to use for numbering
  • Transform - 2D Transformation
  • 3dTransform - 3D Transformation
  • PEN - Selected Pen
  • BRUSH - Selected Brush

The numbering mode indicates the number of digit precision to be used. 0 means no digits, 1 means only integers, 2 means integer + 1 digit floating, 3 means integer + 2 digits floating etc.

Spacing is the number of points that the axis should have. For example, if the X range is from -10 to 10 and spacing is 0.5, the axis will have poitns at -10, -9.5, -9.0 , -8.5 .... 8.5 , 9.0 , 9.5 , 10.

Examples

Simple 2D Axis

FIGURE 1
AXIS at(1) pen(2,0xFF0000) brush(solid,0xFF0000) p4(-3,10,0.5,2) p4(-3,10,0.5,2)

Simple Red 2D Axis

FIGURE 2
LAYER 2 25% 25% 75% 75%
AXIS at(2,1) pen(2,0x0000FF) brush(solid,0xFF0000) p4(-3,10,1.0,1) p4(-3,10,1.0,1)

Axis 3D rotated

FIGURE 3
AXIS 3dtransform(0,0,0,1.0,1.0,1.0,0.0,0.0,-2.0,0.5,0.2,0.0) at(3,0) p4(-1,1,0.2,1) p4(-1,1,0.2,1) p4(-1,1,0.2,1) brush(solid,100) pen(2) font(Tahoma,10)


CURVE (Object)

The CURVE object creates a collection of bezier lines based on 2 line points and 1 control point.

Required Subobjects

  • AT - Define object position.
  • P2 - Specify points to create the polyline. The collection must have pairs of 3 points + 1, one for the point, and one for the control point plus the ending point. The CURVE object can be saved into SWF.

Optional Subobjects

  • Transform - 2D Transformation
  • MORPH - Define object morphing for SWF.
  • PEN - Selected Pen
  • BRUSH - Selected Brush. If you select a brush and the polyline is closed, it is filled.

The CURVE object is intended to be used for exporting to SWF, because it is better rendered in it. If you want to plot a bezier curve, you should use BEZIER which allows 2 control points.


CURVE3 (Object)

The CURVE3 object creates a poly line from a collection of points .

Required Subobjects

  • AT - Define object position.
  • P3 - Specify points to create the polyline. The collection must have pairs of 2 points + 1, one for the point, and one for the control point plus the ending point. The CURVE object can be saved into SWF.

Optional Subobjects

  • Transform - 2D Transformation
  • MORPH - Define object morphing for SWF.
  • 3DTransform - 3D Transformation
  • PEN - Selected Pen
  • BRUSH - Selected Brush. If you select a brush and the polyline is closed, it is filled.

The CURVE3 object is intended to be used for exporting to SWF, because it is better rendered in it. If you want to plot a bezier curve, you should use BEZIER3 which allows 2 control points.


ELLIPSE (Object)

The ELLIPSE object creates an ellipse, simple or filled.

Required Subobjects

  • AT - Define object position.
  • P4 - Specify ellipse's rectangle position. If an axis is specified, the rectangle indicates topleft and right bottom points. Otherwise, the rectangle indicates x,y, width and height of the ellipse.

Optional Subobjects

  • Transform - 2D Transformation
  • PEN - Selected Pen
  • BRUSH - Selected Brush. If you select a brush, the ellipse is filled.

Examples

Plot an ellipse to the entire figure

FIGURE 1
ELLIPSE at(1) p4(0,0,100%,100%) pen(3)

Plot an ellipse in an axis

FIGURE 1
AXIS at(1) pen(2) brush(solid,0xFF0000) p4(-3,10,0.5,2) p4(-3,10,0.5,2)
ELLIPSE at(1,1) pen(1) p4(-5,-5,5,5)


FUNCTION (Object)

The FUNCTION object is a 2D function y = f(x) to be displayed in a 2D system.

Required Subobjects

  • AT - Define object position.
  • NAME - Function expression
  • P2 - Specify the range of X
  • P1 - Specify the X spacing (that is, how many points will be generated)

Optional Subobjects

  • P1 - Type of projection
    • 0 - y = f(x) (Default)
    • 1 - x = f(y)
  • P1 - Type of transform if any
    • 0 - None
    • 1 - FFT
  • Transform - 2D Transformation
  • SPLIT - Define object split.
  • PEN - Selected Pen
  • BRUSH - Selected Brush

Examples

Plot a function

FIGURE 1
AXIS at(1) pen(2) brush(solid,0xFF0000) p4(-3,10,0.5,2) p4(-3,10,1,2)
FUNCTION at(1,0,1) n("sin(4*pi*x)") p2(-0.1,9) p1(0.005) pen(2)

Plot a function's FFT in reverse

FIGURE 1
AXIS at(1) pen(2) brush(solid,0xFF0000) p4(-3,10,0.5,2) p4(-3,10,0.5,2)
FUNCTION at(1,0,1) n("sin(4*pi*x)") p2(-0.1,9) p1(0.005) pen(2) p1(1) p1(1)


FUNCTION3A (Object)

The FUNCTION3A object is a 2D function y = f(x) to be displayed in a 3D system.

Required Subobjects

  • AT - Define object position.
  • NAME - Function expression
  • P2 - Specify the range of X
  • P1 - Specify the X spacing (that is, how many points will be generated)

Optional Subobjects

  • P1 - Type of projection
    • 0 - y = f(x) (Default)
    • 1 - x = f(y)
    • 2 - z = f(x)
    • 3 - x = f(z)
    • 4 - z = f(y)
    • 5 - y = f(z)
  • P1 - Type of transform if any
    • 0 - None
    • 1 - FFT
  • 3DTransform - 3D Transformation
  • Transform - 2D Transformation
  • SPLIT - Define object split.
  • PEN - Selected Pen
  • BRUSH - Selected Brush

Examples

Plot a function into XY, XZ and YZ , with XZ axis FFT

FIGURE 1
AXIS 3dtransform(0,0,0,1.0,1.0,1.0,0.0,0.0,-2.0,0.5,-0.66,0.0) at(1,0) p4(-1,1,0.2,1) p4(-1,1,0.2,1) p4(-1,1,0.2,1) brush(solid,100) pen(2) font(Tahoma,10)
FUNCTION3A at(1,0,1) 3dtransform(0,0,0,1.0,1.0,1.0,0.0,0.0,-2.0,0.5,-0.66,0.0) n(0.1*sin(24*pi*x)) p2(0,1) p1(0.005) pen(2) p1(0) brush(solid,0xFF0000)
FUNCTION3A at(1,0,1) 3dtransform(0,0,0,1.0,1.0,1.0,0.0,0.0,-2.0,0.5,-0.66,0.0) n(0.1*sin(24*pi*x)) p2(0,1) p1(0.005) pen(2) p1(1) p1(1) brush(solid,0x0000FF)
FUNCTION3A at(1,0,1) 3dtransform(0,0,0,1.0,1.0,1.0,0.0,0.0,-2.0,0.5,-0.66,0.0) n(0.1*sin(24*pi*x)) p2(0,1) p1(0.005) pen(2) p1(3) brush(solid,0xFF00FF)


FUNCTION3D (Object)

The FUNCTION3D object is a 3D function z = f(x,y) to be displayed in a 3D system.

Required Subobjects

  • AT - Define object position.
  • SPLIT - Define object split.
  • NAME - Function expression
  • P2 - Specify the range of X
  • P1 - Specify the X spacing (that is, how many points will be generated)
  • P2 - Specify the range of Y
  • P1 - Specify the Y spacing (that is, how many points will be generated)

Optional Subobjects

  • P1 - Type of projection
    • 0 - z = f(x,y) (Default)
    • 1 - z = f(y,x)
    • 2 - y = f(x,z)
    • 3 - y = f(z,x)
    • 4 - x = f(y,z)
    • 5 - x = f(z,y)
  • P1 - Type of Drawing
    • 0 - Lines (Default)
    • 1 - Points
    • 2 - Lines and points
  • P1 - Point size
  • 3DTransform - 3D Transformation
  • Transform - 2D Transformation
  • SPLIT - Define object split.
  • PEN - Selected Pen
  • BRUSH - Selected Brush
  • BRUSH - Surface Brush

Examples

Plot a function z = f(x,y) = x*(y^2) into a 3D axis with a gradient surface

FIGURE 1
AXIS 3dtransform(0,0,0,1.0,1.0,1.0,0.0,0.0,-2.0,-1.08,-0.66,0.0) at(1,0) p4(-1,1,0.2,1) p4(-1,1,0.2,1) p4(-1,1,0.2,1) brush(solid,100) pen(2) font(Tahoma,10)
FUNCTION3D at(1,0,1) 3dtransform(0,0,0,1.0,1.0,1.0,0.0,0.0,-2.0,-1.08,-0.66,0.0) n("x*(y^2)") p2(-0.5,0.5) p2(-0.5,0.5) p1(0.1) p1(0.1) p1(0) p1(2) p1(4.0) pen(2) brush(solid,0xFF00FF) brush(gradient,0xFF,0xFFFF,45)


IMAGE (Object)

The IMAGE object puts an image from a file into the figure.

Required Subobjects

  • AT - Define object position.
  • NAME - Filename containing the image. (JPG,BMP,GIF,PNG,EMF,TIFF).
  • One of the following:
    • P4 - Specify image's position and width/height. The image is stretched to fill the specified area.
    • P2 - Specify image's position. The image is not stretched.

Optional Subobjects

  • Transform - 2D Transformation (Only works in GDI+ mode).
  • PEN - Selected Pen

Examples


PIE (Object)

The PIE object creates an pie.

Required Subobjects

  • AT - Define object position.
  • P4 - Specify pie's rectangle position. If an axis is specified, the rectangle indicates topleft and right bottom points. Otherwise, the rectangle indicates x,y, width and height of the ellipse.
  • P2 - Specify the two angles, starting and length of the pie.

Optional Subobjects

  • Transform - 2D Transformation
  • PEN - Selected Pen
  • BRUSH - Selected Brush. If you select a brush, the pie is filled.

Examples

Plot a pie to the entire figure

FIGURE 1
PIE at(1) p4(0,0,100%,100%) pen(3) p2(180,90)

Plot a pie in an axis

FIGURE 1
AXIS at(1) pen(2) brush(solid,0xFF0000) p4(-3,10,0.5,2) p4(-3,10,0.5,2)
PIE at(1,1) pen(1) p4(-5,-5,5,5)
p2(180,90)


POINT (Object)

The POINT object creates a point at a position.

Required Subobjects

  • AT - Define object position.
  • P3 - Specify point's position xy and radius z.

Optional Subobjects

  • Transform - 2D Transformation
  • PEN - Selected Pen
  • NAME - Optional text below the point
  • BRUSH - Selected Brush. If you select a brush, the point is filled.


POINT3 (Object)

The POINT3 object creates a 3D point at a position.

Required Subobjects

  • AT - Define object position.
  • P4 - Specify point's position xyz and radius w.

Optional Subobjects

  • Transform - 2D Transformation
  • 3DTransform - 3D Transformation
  • PEN - Selected Pen
  • NAME - Optional text below the point
  • BRUSH - Selected Brush. If you select a brush, the point is filled.


POLY (Object)

The POLY object creates a poly line from a collection of points.

Required Subobjects

  • AT - Define object position.
  • P2 - Specify the points that create the polyline. If you plan to export to SWF and you specify a brush, the poly must be closed.

Optional Subobjects

  • MORPH - Define object morphing for SWF.
  • Transform - 2D Transformation
  • PEN - Selected Pen
  • BRUSH - Selected Brush. If you select a brush and the polyline is closed, it is filled.


POLY3 (Object)

The POLY3 object creates a polyline from a collection of 3D points .

Required Subobjects

  • AT - Define object position.
  • P3 - Specify points to create the polyline. If you plan to export to SWF and you specify a brush, the polyline must be closed.

Optional Subobjects

  • MORPH - Define object morphing for SWF.
  • Transform - 2D Transformation
  • 3DTransform - 3D Transformation
  • PEN - Selected Pen
  • BRUSH - Selected Brush. If you select a brush and the polyline is closed, it is filled.


POLY4 (Object)

The POLY4 object creates a polyline from a collection of 4D points .

Required Subobjects

  • AT - Define object position.
  • P4 - Specify points to create the polyline. If you plan to export to SWF and you specify a brush, the polyline must be closed.

Optional Subobjects

  • MORPH - Define object morphing for SWF.
  • Transform - 2D Transformation
  • 3DTransform - 3D Transformation
  • 4DTransform - 4D Transformation
  • PEN - Selected Pen
  • BRUSH - Selected Brush. If you select a brush and the polyline is closed, it is filled.


RECTANGLE (Object)

The RECTANGLE object creates a rectangle, simple or filled.

Required Subobjects

  • AT - Define object position.
  • P4 - Specify rectangle's position. If an axis is specified, the rectangle indicates topleft and right bottom points. Otherwise, the rectangle indicates x,y, width and height of the rectangle.

Optional Subobjects

  • Transform - 2D Transformation
  • PEN - Selected Pen
  • BRUSH - Selected Brush. If you select a brush, the rectangle is filled.

Examples

Plot a rectangle to the entire figure

FIGURE 1
RECTANGLE at(1) p4(0,0,100%,100%) pen(3)

Plot a rectangle in an axis

FIGURE 1
AXIS at(1) pen(2) brush(solid,0xFF0000) p4(-3,10,0.5,2) p4(-3,10,0.5,2)
RECTANGEL at(1,1) pen(1) p4(-5,-5,5,5)


GPS View

This is the main TGPS screen, which shows general GPS information and track/waypoint route.
There are 3 areas: the top , the middle, and the bottom area.

Top Area

At the top left, X,Y,Z (longitude,latitude and altitude) are displayed in the specified format (default is in Degrees : Minutes : Seconds). In PPC , the current cell id of your Cellular Provider is also displayed if available.

When playing back a track, the current track waypoint is also displayed. For example if you have a track of 120 points and you are around point 78, 78/120 will be displayed.

The area also displays the locked satellites (max 12) , their precision value (1.00 = best accuracy), your degree course (the same value showing in the compass) , the current time.

Middle Area

The speed is displayed in the specified format (default is Km/H , can also display to Knots,MpH or m/s by setting the options). If you click at the speed when NOT recording a track, then a min/max limit dialog will be displayed, allowing you to set the maximum/minimum speed allowed (value of 0 means no limitation). If you get ouf of range, Speed will turn to red and TGPS will beep.

If you are at track recording state, clicking the speed will allow you to insert a Speed Waypoint. Speed waypoints are special waypoints that remember any speed limit you may enter.

Compass

The Compass runs in two modes. If not playing back a track, it displays your current course in degrees (0-360). When playing back a track, there are two pointers, one displaying the current course, and a blue thick one that displays the direction of the next waypoint in the track, allowing you to know, when playing back a track, when and where you should turn.

Km/ETA

These two appear only when playing back a track, displaying the distance between your current position and the next waypoint in the track in Km/h, and the estimated time to get there (calculated from your current speed).

Bottom Area

This area shows the nearest waypoint and the distance from it in.


3DTRANSFORM (Subobject)

The 3DTRANSFORM subobject specifies 3D transform of an object.

  • 3DTRANSFORM(w.x,w.y,w.z,s.x,s.y,s.z,e.x,e.y,e.z,e.ax,e.ay,e.az)

w.xyz is the world translation of the object

s.xyz is the scaling of the object

e.xyz is the location of the eye (camera)

e.axyz is the rotation of the camera.

Typically, 3dtransform of an object is (0,0,0,1,1,1,0,0,-4,0,0,0), so an object is visible to the eye using perspective.

The default transform, if 3DTRANSFORM is not used, is (0,0,0,1,1,1,0,0,0,0,0,0);


4DTRANSFORM (Subobject)

The 4DTRANSFORM subobject specifies 4D transform of an object.

  • 4DTRANSFORM(w.x,w.y,w.z,w.w,s.x,s.y,s.z,s.w,e.x,e.y,e.z,e.w,e.ax,e.ay,e.az,e.aw)

w.xyzw is the world translation of the object

s.xyzw is the scaling of the object

e.xyzw is the location of the eye (camera)

e.axyzw is the rotation of the camera.

The default transform, if 4DTRANSFORM is not used, is (0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0);


AT (Subobject)

The AT subobject specifies the figure, the layer, the axis, and the frame in which the object will be drawn. Bold parameters are mandatory.

  • AT(fid,[lid],[axid],[frid])
fid | Frame ID to draw the object . If a TPLXML file is loading and this ID is zero, then the object is created at a new figure and the ID gets the value of the newly created figure.
lid | Layer ID to draw the object. If not specified, 0 is assumed (the entire figure)
axid | Axis ID to draw the object. This is mandatory for the FUNCTION object. If not specified, no axis is used. In 3D objects, axid is used to get the default transform of the 3d object.
frid | Frame ID to draw the object. If not specified, 0 is assumed (the first frame)

When creating TPLXML files, it is common to set fid to zero - this allows a TPLXML file to be always loaded to a new figure. When entering commands from the command line, fid must be 1 or greater , identifying an existing figure.

The AT subobject is mandatory for all objects.


Brush (Subobject)

The Brush subobject specifies the brush to fill the current object, if the object can be filled. If the object can't be filled, then Brush specifies the pen to draw the object, applying the gradient color if applicable.Bold parameters are mandatory.

  • brush(type,[color],[color2],[style| angle | 6el])
type | solid or gradient or hatch or null
color | Color of the brush
color2 | 2nd color of a gradient or hatch brush
angle or 6el | If hatch brush, the style. If gradient brush, angle , or 6 elements that describe the transform of the brush.

If you don't supply a BRUSH, a default null brush is used.

Hatch styles are enumerated in gdiplusenums.h or in MSDN. Note that SWF saving does not yet export hatch brushes. SWF supports null, solid and gradient fills.


Font (Subobject)

The Font subobject is used when text is to be drawn (TEXT, AXIS and POINT objects). Bold parameters are mandatory.

  • font(face,size,[style],[unit])
face | Facename, say "Tahoma"
size | Font size
style | Font style, a combination of FontStyleRegular = 0, FontStyleBold = 1, FontStyleItalic = 2, FontStyleUnderline = 4, FontStyleStrikeout = 8
unit | Unit of measurement (GDI+), the default is "Point" = 3.

If you don't supply a FONT, a default system font is used.


MORPH (Subobject)

The MORPH subobject applies only to POLY,POLY3, CURVE and CURVE3 objects and has only meaning if you plan to export to SWF. You must use MORPH to 2 subsequent objects to mark them for Flash shape morphing.

  • MORPH (Flag)
fid 0 for shape1 , 1 for shape 2.

The shape will be transformed according to the frame IDs in the AT, for example, if the first shape is at frame id 0 and second is at frame id 50, then an animation will be created from frame 0 to frame 50.


Name (subobject)

The Name subobject specifies the function expression (for FUNCTION , FUNCTION3A and FUNCTION3D objects) or a text for a POINT or POINT3 object. The text should appear in double quotes.

  • n("y = x+1")


P1 (Subobject)

The P1 subobject specifies a number (or a collection of numbers)

  • P1(<x>[,<x>,...])

P1 is usually used to indicate drawing parameters, for example in FUNCTION3A object.


P2 (Subobject)

The P2 subobject specifies a 2D point (or a collection of 2D points)

  • P2(<x,y>[,<x,y>,...])

P2 is usually used to specify 2D points (like in POLY object), ranges and so on.


P3 (Subobject)

The P3 subobject specifies a 3D point (or a collection of 3D points)

  • P3(<x,y,z>[,<x,y,z>,...])

P3 is usually used to specify 3D points (line in POLY3 object), or 2D points with an additional parameter (like in the POINT object)


P4 (Subobject)

The P4 subobject specifies a 4D point (or a collection of 4D points)

  • P4(<x,y,z,w>[,<x,y,z,w>,...])

P4 is usually used to specify 4D points, or 3D points with an additional parameter (like in the POINT3 object)


Pen (Subobject)

The Pen subobject specifies the pen to draw the current object. If a brush is also specified and the object can be filled (for example, a RECTANGLE) , then the Pen subobject is ignored. Bold parameters are mandatory.

  • pen(size,[color],[dashtype])
size | Size of the pen in pixels.
color | Color of the pen (0xXXXXXXXX hex view and alpha colors are supported)
dashtype | Dash type of the pen, a value from 0 to 4.

If you don't supply a PEN, a default black size-1 pen is used..


SPLIT (Subobject)

The SPLIT subobject allows you to split the actions that draw an object to multiple frames, so the generated SWF file is animated.

  • SPLIT(frid,[frid,...])

For example, if you create a function that is to draw 100 samples and you use SPLIT(3,4,5,6) , 25 of the samples will be drawn to frame #3, 25 of the samples to frame 4 etc.

Usually you will use SPLIT or SPLITR with polylines and curves.

For examples on using SPLIT, see SWF samples.


SPLITR (Subobject)

The SPLITR subobject allows you to split the actions that draw a function to multiple frames, so the generated SWF file is animated. SPLITR is only supported in FUNCTION , FUNCTION3A and FUNCTION3D .

  • SPLITR(StartFrame,NumFrames)

For example, if you use splitr(2,50), the function plot will start at frame 2 and will end at frame 50.

For examples on using SPLITR, see SWF samples.


SPLITTR (Subobject)

The SPLITTR subobject allows you to transform (scale,rotate,move 2D or 3D or otherwise transform) an object into a number of frames, so that the object can be animated.

SPLITTR takes 22 or 23 parameters. First parameter is the starting frame, Second is the total frames to be used. Next six or seven is the 2d transformation to be multiplied with (6 if GDI transform, 7 if Own2D transform), and the next 12 parameters are the 3d transform that can be applied progressively if the object is 3D.

For examples on using SPLITTR, see SWF samples.


TRANSFORM (Subobject)

The TRANSFORM subobject specifies 2D transform of an object . The TRANSFORM subobject is different, depending on if the figure is GDI+ or OWN2D.

  • TRANSFORM(x1,y1,x2,y2,z1,z2) (GDI+ transform figures)

z1 and z2 are the indications of the X and Y scaling. The other 2x2 matrix indicates the world translation, shearing and rotation.

or

  • TRANSFORM(wx,wy,sx,sy,rot,rotorx,rotory) (Own2D transform figures)

wx,wy is the world translation, sx and sy is the scaling, rot is the rotation angle, and rotorx,rotory is the rotation origin.

The TRANSFORM subobject is useful when you want to scale or rotate an object. For the differencesin GDI/Own2D figures, see FIGURE .


Flash Animations (SWF)

Turbo Plot 2.0 allows you to save .SWF files to create animated plots. The animation can either be a function drawing:

or, a frame by frame object transformation:

Current Limitations of the SWF files:

  • No Text Rotation.
  • No Embedded Images.
  • No hatch brushes.

There are several ways to put animation into a figure:

  • The FRAME or FRAMES command , to insert some frames into the figure.

This command is mandatory if you will manually edit the TPLXML file.

SPLITR

The SPLITR subobject, which is used to draw a function into some frames with animation. Use SPLITR if you want to draw an animated function plot only.

For example, lets see a simple function plot:

FIGURE 1 600 600 0xFFFFFFFF nodx own2d
AXIS at(1) p4(-0.2,1,0.1,2) p4(-0.2,1,0.1,2) brush(solid,0xFF) font(Tahoma,10)
function at(1,0,1) n("0.2*sin(12*pi*x) + 0.2") p2(-0.1,1) p1(0.005) brush(solid,0xFF)

Now let's alter it a bit:

FIGURE 1 600 600 0xFFFFFFFF nodx own2d
// Add 100 frames, 50ms each, no clear
FRAMES 1 100 50 0
AXIS at(1) p4(-0.2,1,0.1,2) p4(-0.2,1,0.1,2) brush(solid,0xFF) font(Tahoma,10)
function splitr(25,50) at(1,0,1) n("0.2*sin(12*pi*x) + 0.2") p2(-0.1,1) p1(0.005) brush(solid,0xFF)

SPLITTR

The SPLITTR subobject, which is used to transform an object into frames.

Use SPLITTR if you want to animate objects with transforms (move,rotate,scale) in 2D and 3D.

The above example with SPLITTR is something like that:

FIGURE 1 600 600 0xFFFFFFFF nodx own2d
FRAMES 1 100 50 0
AXIS splittr(0,75,0,0,1,1,0.1,0,0,0,0,0,1,1,1,0,0,0,0,0,0) at(1) p4(-0.2,1,0.1,2) p4(-0.2,1,0.1,2) brush(solid,0xFF) font(Tahoma,10)

Interactive Mode

  • Interactively by recording.

Here are the steps to create an animation manually:

  • Create the figure and its first frame.
  • From menu Frame , select "Start Animation Recording". Specify the starting frame, the msecs, and if the new frames will remove previous frames (default).
  • For each frame you want to store, create that frame (or transform it or anything), then press F12. The frame is stored in the array.
  • Repeat the procedure for every frame you want to store.
  • From menu Frame , select "End Recording"

The figure will draw all the frames in one (you can move around frames by using < and >). Press F8 and the SWF will be previewed. Press Alt+S to save the SWF.