Référence › Shapes and Graphics — 206 commandes
amigaball
Aussi: ab
Entrée: radius (number) | stacks (number) | sectors (number)
Sortie: none
Creates an 'Amiga ball', a sphere that alternates sectors between the pen color and the fill color.
amigaball 50 10 20
amigaballoid
Aussi: abo
Entrée: radius (number) | stacks (number) | sectors (number) | ratio (number)
Sortie: none
Creates a stretched or flattened Amiga ball, based on the supplied ratio. Respects setspheroidaxis
amigaballoid 50 10 20 0.5
arc
Entrée: degrees | radius
Sortie: none
Creates an arc. The arc is created around the turtle, and the turtle does not move. For arcs the turtle moves along, see leftarc, rightarc
arc 90 20
beginfill
Entrée: none
Sortie: none
Starts the collection of points used in creating an arbitrary (user-designed) 2D shape. The turtle's z-position must not change while drawing the shape. The path must not overlap. Once the path is completed, use endfill to generate the shape. See endfill
beginfill
billboard
Entrée: name (word) | dimensions (list)
Sortie: none
Creates a 'billboard' using the specified image and the specified list of dimensions [x y]. If the width or height of the billboard is given as a single list item, eg [20], billboard will center the image on the turtle appropriately. See sample
billboard "marquee [100 200]
billboard "image [[100][100]]
box
Entrée: size (number)
Sortie: none
Creates a lined square of the specified size. If the parameter is supplied as a single-item list, the box is centered on the turtle. See rect
box 20
box [20]
cappedcutsphere
Entrée: radius (number) | stacks (number) | sectors (number) | minstack (number) | maxstack (number)
Sortie: none
Creates a truncated, or cut, sphere with caps on the cut ends. Can be cut on the top, bottom, or both based on specified minstack and maxstack values. See cappedcutspheroid
cappedcutsphere 30 14 32 4 13
cappedcutspheroid
Entrée: radius (number) | stacks (number) | sectors (number) | minstack (number) | maxstack (number) | ratio
Sortie: none
Creates a truncated, or cut, spheroid with caps on the cut ends stretched by the specified ratio. Can be cut on the top, bottom, or both based on specified minstack and maxstack values. See cappedcutspheroid, setspheroidaxis
cappedcutspheroid 30 14 32 4 13 2
cappeddome
Entrée: radius (number) | stacks (number) | sectors (number)
Sortie: none
Creates a 'capped' dome, a dome with a circle 'sealing' its bottom. See dome, cappeddomoid
cappeddome 30 20 20
cappeddomoid
Entrée: radius (number) | stacks (number) | sectors (number) | ratio
Sortie: none
Creates a capped dome stretched by the given ratio. See cappeddome, setspheroidaxis
cappeddomoid 30 20 20 0.5
cappedsphereslice
Entrée: radius (number) | stacks (number) | sectorstotal (number) | sectorsused (number)
Sortie: none
Creates a partial sphere of the overall specified radius, using the specified number of vertical 'stacks', and specified number of horizontal 'sectors', based on the given total number of sectors, and the used (displayed) number of sectors. Like an orange cut vertically. See cutsphere, cutsphereslice
sphereslice 20 10 10 5
cappedspheroidslice
Entrée: radius (number) | stacks (number) | sectorstotal (number) | startsector (number) | endsector (number) | multiplier (number)
Sortie: none
Creates a partial spheroid of the overall specified radius, using the specified number of vertical 'stacks', and specified number of horizontal 'sectors', based on the given total number of sectors, and the startsector and endsector values, and stretched using the provided multiplier. Like a squashed orange cut vertically. See cutspheroid, cutspheroidslice
spheroidslice 20 10 10 5 10 2
circle
Aussi: cir
Entrée: radius
Sortie: none
Creates a lined circle at the specified radius around the turtle
circle 50
repeat 18 [circle 50 rr 10]
clearimage
Entrée: imagename (word)
Sortie: none
Clears the specified image from memory.
clearimage "image
clearimages
Entrée: none
Sortie: none
Clears all iamges from memory.
clearimages
clearpins
Entrée: none
Sortie: none
Clears the list of pins. See pin
clearpins
cone
Aussi: cn
Entrée: radius (number) | depth (number) | sides (number)
Sortie: none
Creates a cone pointing downward from and centered on the calling turtle.
cone 20 10 20
coneslice
Aussi: csl
Entrée: radius (number) | depth (number) | sidestotal (number) | sidesused (number)
Sortie: none
Creates a sliced cone.
coneslice 20 20 20 10
conoid
Aussi: cno
Entrée: radius (number) | depth (number) | sides (number) | ratio (number)
Sortie: none
Creates a conoid, a cone stretched or compressed based on the provided ratio (1 is normal, 2 is stretched twice as much, 0.5 half as much, etc.)
conoid 20 40 20 2
conoidslice
Aussi: cosl
Entrée: radius (number) | depth (number) | sidestotal (number) | sidesused (number) | ratio (number)
Sortie: none
Creates a sliced conoid.
conoidslice 20 20 20 10 2
cube
Aussi: cb
Entrée: size or [size]
Sortie: none
Creates a wireframe cube of the specified size up, right and below the turtle unless the size is given as a [list] in which case it centers around the turtle
cube 20
cuboid
Aussi: cbo
Entrée: width | height | depth
Sortie: none
Creates a wireframe cuboid of the specified dimensions
cuboid 30 20 10
cutcone
Aussi: cc
Entrée: radiusnear (number) | radiusfar (number) | depth (number) | sides (number)
Sortie: none
Creates a truncated, or cut, cone. See cone
cutcone 10 20 30 30
cutconeslice
Aussi: ccs
Entrée: radiusnear (number) | radiusfar (number) | depth (number) | sidestotal (number) | sidesused (number)
Sortie: none
Creats a cut, sliced cone. See coneslice
cutconeslice 20 40 20 20 10
cutconoid
Aussi: cco
Entrée: radiusnear (number) | radiusfar (number) | depth (number) | sides (number) | ratio (number)
Sortie: none
Creates a truncated, or cut, conoid, stretched based on the provided ratio. See conoid
cutconoid 10 20 30 30 2
cutconoidslice
Aussi: ccos
Entrée: radiusnear (number) | radiusfar (number) | depth (number) | sidestotal (number) | sidesused (number) | ratio (number)
Sortie: none
Creates a cut, sliced conoid, stretched based on the provided ratio. See conoid
cutconoidslice 10 20 30 30 15 2
cutfunnel
Aussi: cf
Entrée: radiusnear (number) | radiusfar (number) | depth (number) | sides (number)
Sortie: none
Creates a cut funnel (an uncapped cut cone).
cutfunnel 20 10 20 20
cutfunneloid
Aussi: cfo
Entrée: radiusnear (number) | radiusfar (number) | depth (number) | sides (number) | ratio (number)
Sortie: none
Creates a cut funneloid (an uncapped cut conoid).
cutfunneloid 20 30 20 20 0.5
cutfunneloidslice
Aussi: cfos
Entrée: radiusnear (number) | radiusfar (number) | depth (number) | sidestotal (number) | sidesused (number) | ratio (number)
Sortie: none
Creates a cut, sliced funneloid (an uncapped cut conoid).
cutfunneloidslice 20 30 20 20 10 0.5
cutfunnelslice
Aussi: cfs
Entrée: radiusnear (number) | radiusfar (number) | depth (number) | sidestotal (number) | sidesused (number)
Sortie: none
Creates a sliced, cut funnel (an uncapped cut cone).
cutfunnelslice 20 10 20 20 10
cutsphere
Aussi: csp
Entrée: radius (number) | stacks (number) | sectors (number) | minstack (number) | maxstack (number)
Sortie: none
Creates a truncated, or cut, sphere. Can be cut on the top, bottom, or both based on specified minstack and maxstack values. See sphere
cutsphere 30 14 32 4 13
cutsphereslice
Aussi: css
Entrée: radius (number) | stacks (number) | totalsectors (number) | minstack (number) | maxstack (number) | usedsectors (number)
Sortie: none
Creates a sliced and cut sphere. Can be cut on the top, bottom, or both based on specified minstack and maxstack values. Displays the portion specified by totalsectors and usedsectors. If usedsector is supplied as a single list value eg [5], cutsphereslice renders only that sector. See sphereslice, cutsphere
cutsphereslice 30 20 20 5 15 10
cutspheroid
Aussi: cso
Entrée: radius (number) | stacks (number) | sectors (number) | minstack (number) | maxstack (number) | ratio (number)
Sortie: none
Creates a truncated, or cut, sphere, stretched by the provided ratio. Can be cut on the top, bottom, or both based on specified minstack and maxstack values. See spheroid
cutspheroid 30 14 32 4 13 0.5
cutspheroidslice
Aussi: csos
Entrée: radius (number) | stacks (number) | totalsectors (number) | minstack (number) | maxstack (number) | startsector (number) | endsector (number) | ratio (number)
Sortie: none
Creates a sliced and cut spheroid. Can be cut on the top, bottom, or both based on specified minstack and maxstack values. Displays the portion specified by startsector and endsector. Is stretched by the ratio provided. See spheroidslice, cutspheroid
cutspheroidslice 30 20 20 5 15 5 10 2
cylinder
Aussi: cy
Entrée: radius (number) | depth (number) | sides (number)
Sortie: none
Creates a cylinder. If depth is provided as a list, centers the cylinder on the turtle
cylinder 20 30 10
cylinderarc
Aussi: cya
Entrée: thickness (number) | radius (number) | sides (number) | totalsegments (number) | arcsegments (number)
Sortie: none
Creates a partial torus, or curved cylinder.
cylinderarc 5 15 20 20 10
cylinderarcslice
Aussi: cyas
Entrée: thickness (number) | radius (number) | sides (number) | totalsegments (number) | arcsegments (number) | startsides (number) | endsides (number)
Sortie: none
Creates a slice of a partial torus, or curved cylinder. If arcsegments is provided as a single list value eg [5] then cylinderarcslice renders only that segment. Note: If you invert the thickness value, you can 'slice' the opposite side.
cylinderarcslice 5 15 20 20 10 5 15
cylinderslice
Aussi: cys
Entrée: radius (number) | depth (number) | totalsides (number) | slicesides (number)
Sortie: none
Creates a rounded wedge shape, like a slice of a round of cheese, starting at the turtle's right vector and moving counter-clockwise.
cylinderslice 20 10 20 10
cylindroid
Aussi: cyo
Entrée: radius (number) | depth (number) | sides (number) | ratio (number)
Sortie: none
Creates a cylindoid. If the depth parameter is provided as a list, centers the cylindroid on the turtle
cylindroid 20 30 10 2
cylindroidarc
Aussi: cyoa
Entrée: thickness (number) | radius (number) | sides (number) | totalsegments (number) | arcsegments (number) | ratio (number)
Sortie: none
Creates a cylinder arc extruded by the provided ratio.
cylindroidarc 5 15 20 20 10 2
cylindroidarcslice
Aussi: cyoas
Entrée: thickness (number) | radius (number) | totalsides (number) | totalsegments (number) | arcsegments (number) | startsides (number) | endsides | ratio (number)
Sortie: none
Creates a cylinder arc sliced by the provided sides values and extruded by the provided ratio.
cylindroidarcslice 5 15 20 20 10 10 15 2
cylindroidslice
Aussi: cyos
Entrée: radius (number) | depth (number) | totalsides (number) | slicesides (number) | ratio (number)
Sortie: none
Creates a stretched rounded wedge shape, like a slice of a round of cheese, starting at the turtle's right vector and moving counter-clockwise, and stretched using the provided ratio, where 1 is normal, 0.5 is half, 2 is double etc.
cylindroidslice 20 10 20 10 0.5
deformed
Aussi: dfm
Entrée: "shape (word) | radius (number) or [X Y (Z)] (list) | [points-x points-y (points-z)] (list) | "tablename (word) | smoothing (number)
Sortie: none
Creates a quad, voxeloid or sphere out of a lattice of division points, displaces each of those points by the amount held in the matching cell of the named table, then inserts smoothing extra points between each pair of division points using a spline. A single size value is a radius, applied to every axis, while a list gives the shape's full width, height and depth. Division counts are numbers of points, with a minimum of 2. Table values are in turtle-steps and negative values pull a point inwards, while empty, missing or non-numeric cells read as 0. X is to the right of the turtle, Y is forward and Z is up. quad reads sheet 1, cell [y x], and pushes each point along Z, ignoring points-z. sphere reads sheet 1, cell [latitude longitude], as a deviation of that point's radius, ignoring points-z, with latitude running from the -Z pole to the +Z pole and longitude wrapping around. voxeloid reads one sheet per face, in the order +X, -X, +Y, -Y, +Z, -Z, each pushing that face's points along its own outward normal. voxeloid faces are welded at their shared edges and corners, so they never pull apart: where faces meet, their deviations compose, meaning a corner pushed by three sheets travels diagonally. See voxeloid, sphere, quad, newtable, setcell
newtable "bumps [8 12 6]
setcell "bumps [3 3] 40
deformed "quad 100 [5 5] "bumps 0
deformed "sphere 100 [12 8] "bumps 3
deformed "voxeloid 100 [5 5 5] "bumps 2
deleteoverlay
Entrée: name (word)
Sortie: none
Deletes the named overlay.
deleteoverlay "myrtlesview
deletesticker
Entrée: name (word)
Sortie: none
Deletes the sticker with the specified name. See placesticker.
deletesticker "marquee
dodecahedron
Aussi: dod
Entrée: size (number)
Sortie: none
Creates a dodecahedron (12-sided shape) of the specified size.
dodecahedron 5
dodecahedroid
Aussi: dodo
Entrée: size (number) | ratio (number)
Sortie: none
Creates a dodecahedroid (12-sided shape) of the specified size and stretched using the specified ratio.
dodecahedroid 5 2
dodecahedroid 10 0.5
dome
Aussi: dm
Entrée: radius (number) | stacks (number) | sectors (number)
Sortie: none
Creates a dome
dome 20 10 10
domoid
Aussi: dmo
Entrée: radius (number) | stacks (number) | sectors (number) | stretch (number)
Sortie: none
Creates a stretched dome.
domoid 20 10 10 2
doppel
Entrée: modelname (word)
Sortie: none
Like stamp, except creates a reference to the provided model rather than copying the model into the turtle track. This means that if the model changes, its doppel representation will also change.
doppel "myrtle
dot
Entrée: [x y (z)] (list)
Sortie: none
Puts a dot at the specified co-ordinates using the specified _pen_ color (this is for Apple Logo compatibility). If z is not specified, z = 0. Dots are removed by clearscreen but not clean (this is a slight deviation from Apple Logo's behavior, for utility.) See dots, dotp, dotsize.
dot [10 10]
dots
Entrée: none
Sortie: list
Returns a list of the co-ordinates of all the dots currently in the calling turtle's turtle track. See dot, dotp
show dots
dotsize
Entrée: none
Sortie: size (number)
Returns the calling turtle's current dot size. See setdotsize, dot, dotp.
show dotsize
duocutconoid
Aussi: dcc
Entrée: radiusnear (number) | radiusfar (number) | depth (number) | sides (number) | ratio1 (number) | ratio2 (number)
Sortie: none
Creates a cut conoid with two different oid (stretch) ratios, one for each end. See cutconoid, duocutfunneloid
duocutconoid 20 30 20 20 0.5 2
duocutfunneloid
Aussi: dcfo
Entrée: radiusnear (number) | radiusfar (number) | depth (number) | sides (number) | ratio1 (number) | ratio2 (number)
Sortie: none
Creates a cut funneloid (an uncapped cut conoid) with two different oid (stretch) ratios, one for each end. See cutfunneloid
duocutfunneloid 20 30 20 20 0.5 2
duocylindroid
Aussi: dco
Entrée: radius (number) | depth (number) | sides (number) | ratio1 (number) | ratio2 (number)
Sortie: none
Creates a cylindroid with two different oid (stretch) ratios, one for each end. See cylindroid, duotuboid
duocylindroid 20 20 20 0.5 2
duotuboid
Aussi: dto
Entrée: radius (number) | depth (number) | sides (number) | ratio1 (number) | ratio2 (number)
Sortie: none
Creates a tuboid, or stretched tube, with two different oid (stretch) values, one for each end. Can be used to transition between non-oids and oids, or between two oids. See tuboid
duotuboid 10 20 20 0.5 2
ellipse
Aussi: ell
Entrée: half-width (number) | half-height (number)
Sortie: none
Creates a pen-drawn ellipse of the specified width and height. See oval
ellipse 50 20
endfill
Entrée: none
Sortie: none
Concludes the collection of points used in the creation of an arbitrary (user-created) 2D shape. If the path overlaps or changes Z-position the creation of the shape may fail, try can be used to mitigate this. See beginfill
endfill
fiso
Entrée: half-width height OR [height]
Sortie: none
Creates a filled isosceles triangle with the center of its base at the root of the selected turtle OR [centered on turtle] and aligned with the turtle's orientation. See iso.
fiso 20 10
funnel
Aussi: fu
Entrée: radius (number) | depth (number) | sides (number)
Sortie: none
Creates a funnel (an uncapped cone).
funnel 20 20 20
funnelslice
Aussi: fus
Entrée: radius (number) | depth (number) | sidestotal (number) | sidesused (number)
Sortie: none
Creates a sliced funnel.
funnelslice 20 20 20 10
funneloid
Aussi: fuo
Entrée: radius (number) | depth (number) | sides (number) | ratio (number)
Sortie: none
Creates a funneloid (an uncapped conoid).
funneloid 20 20 20 0.5
funneloidslice
Aussi: fuos
Entrée: radius (number) | depth (number) | sidestotal (number) | sidesused (number) | ratio (number)
Sortie: none
Creates a sliced funneloid.
funneloidslice 20 20 20 10 2
hideoverlay
Entrée: name (word)
Sortie: none
Hides the specified overlay. See newoverlay
hideoverlay "myrtlesview
hidesticker
Entrée: name (word)
Sortie: none
Hides the sticker specified by the provided name parameter. See placesticker
hidesticker "marquee
icosphere
Aussi: ico
Entrée: radius (number)
Sortie: none
Creates an icosphere of a specified radius. See icosphereoid
icosphere 10
icospheroid
Aussi: icd
Entrée: radius (number) | multiplier (number)
Sortie: none
Creates an icosphereoid of a specified radius, stretched using the provided multiplier.
icosphereoid 10 2
images
Entrée: none
Sortie: list
Returns a list of the currently defined images.
show images
iso
Entrée: half-width height OR [height]
Sortie: none
Draws an isosceles triangle of the specified width and height, with the turtle positioned at the center of the lower side OR [centered on the turtle], and the triangle pointing in line with the turtle's current orientation.
repeat 18 [iso 20 60 rollright 10]
lat
Entrée: size
Sortie: none
Creates a left-facing right-angle triangle. See rat
lat 20
line
Entrée: length (number)
Sortie: none
Creates a line of the specified length in front of the calling turtle, without moving that turtle. Line does not respect penup / pendown. If length specified as a [list] eg [5], centres line on turtle.
repeat 36 [if oddp repcount [line 20] else [line 40] rt 10]
listanimations
Entrée: none
Sortie: none
Prints out a list of all models that have animations, showing each model name followed by its available animation names.
listanimations
listimages
Entrée: none
Sortie: none
Lists the calling turtle's images
listimages
listoverlays
Entrée: none
Sortie: none
Prints a list of the currently defined overlays.
listoverlays
liststickers
Entrée: none
Sortie: none
Prints the names of the currently defined stickers, one per line. See newsticker, stickers
liststickers
newoverlay
Entrée: name (word) | turtle (word)
Sortie: none
Creates a new camera 'overlay' or picture-in-picture with the specified name using the point of view of the specified turtle. You position the overlay on the screen using placeoverlay
newoverlay "myrtlesview "myrtle
newsticker
Entrée: name (word) | image (word)
Sortie: none
Defines a new sticker using the provided image. See placesticker
loadimage "marqueeimage "marquee.png
newsticker "marqueesticker "marqueeimage
nextframe
Entrée: none
Sortie: none
Waits until the next frame of video is rendered. Useful for creating smooth animations in combination with norender and render (eg render nextframe norender) by otherwise disabling rendering except for one nextframe per loop. Warning: If norender is currently set, nextframe will wait indefinitely!
render nextframe norender
nooverlayrender
Entrée: "name (word)
Sortie: none
Suspends rendering (updating) of the named overlay. See overlayrender, which resumes it.
nooverlayrender "overlay
norender
Entrée: none
Sortie: none
Disables the renderer. There will be no updates to the graphical output while norender is enabled. This includes view turtle (camera) movement! Pressing the escape key will re-enable render, as will the render primitive. See render
norender
nospeckle
Entrée: none
Sortie: none
Disables speckling of voxels and quads. See speckle
nospeckle
notwosided
Aussi: ntws
Entrée: none
Sortie: none
Causes the surface of shapes to only be 'lit' from one side – in OpenGL parlance, only one side has 'normals'. This is the default. If you wish both sides of a shape's surface to be lit, invoke twosided. See twosided
notwosided
noupdatestamp
Entrée: none
Sortie: none
Disables automatic stamp updating. See updatestamp.
noupdatestamp
octahedron
Aussi: oct
Entrée: size (number)
Sortie: none
Creates a octahedron (8-sided shape) of the specified size, which is the distance to the farthest tips of the octahedron.
octahedron 5
octahedroid
Aussi: octo
Entrée: size (number) | ratio (number)
Sortie: none
Creates a octahedroid (8-sided shape) of the specified size and stretched using the specified ratio.
octahedroid 5 2
octahedroid 10 0.5
oval
Entrée: half-width (number) | half-height (number)
Sortie: none
Creates a filled oval of the specified dimensions. See ellipse
oval 50 20
ovalpie
Entrée: degrees (number) | half-width (number) | half-height (number)
Sortie: none
Creates a filled oval-shaped 'pie' of the specified degrees and dimensions. See pie, oval
ovalpie 90 50 20
overlayrender
Entrée: name (word)
Sortie: none
Resumes rendering (updating) the selected overlay. See nooverlayrender, which suspends it.
overlayrender "overlay
overlays
Entrée: none
Sortie: list
Returns a list of the currently defined overlays.
show overlays
peak
Entrée: width | height | depth
Sortie: none
Creates a lined wedge around and beneath the calling turtle. The width distance is the distance to one side of the turtle (the total width of the peak is double the provided width value).
peak 10 20 30
pie
Entrée: degrees (number) | radius (number)
Sortie: none
Creates a pie-chart like object of the specified radius and degrees, starting at the turtle's right vector and moving counter-clockwise.
pie 270 20
pin
Entrée: none
Sortie: none
Drops a 'pin', for use with pinfill, pinline and pinshard
pin
pinfill
Entrée: none
Sortie: none
Creates an arbitrary shape based on the previously dropped pins. Note that pinfill may not work if the lines created by the pins cross! pinfill erases the list of pins. See pin, pinline, pinshard.
pinfill
pinline
Entrée: number (X)
Sortie: none
Creates a line using the last X dropped 'pins' in reverse sequential order. See pin
pinline 3
pins
Entrée: none
Sortie: list
Returns a list of the currently placed pins. See setpins, pinfill, pinspline
show pins
pinshard
Entrée: depth (number)
Sortie: none
Creates a 'shard' (an arbitrary shape of the given depth) using the list of dropped 'pins'. Note that pinshard may fail if the lines created by the pins cross! See pin, pinfill, pinspline
pinshard 5
pinspline
Entrée: resolution
Sortie: none
Creates a spline of the given resolution using the previously placed pins as base points. Replaces the existing pins with the resolved pins. Does not erase the list of pins. Can be subsequently used with pinfill (to fill the spline, if it is connected). See pin, pinfill
pinspline 5
placeoverlay
Entrée: name (word) | [x1% y1% x2% y2%] (list)
Sortie: none
Places the named overlay on the screen over the list of co-ordinates which are specified in terms of percentages. See newoverlay
placeoverlay "myrtlesview [0 0 50 50]
placesticker
Entrée: name (word) | [x1% y1% x2% y2%] (list)
Sortie: none
Places the sticker with the provided name over the area of the screen specified by the provided list, which is in terms of percentages of the screen dimensions, where 100% is the right / bottom and 0% is the left / top. As the name suggests, a sticker is a static image which does not move with the camera view, as if you stuck a sticker to your display. See stickers, stickerp
loadimage "marquee "marquee.png
newsticker "marqueesticker "marquee
placesticker "marqueesticker [25 25 75 75]
poly
Entrée: radius (number) OR [radius1 radius2 radius3…]| sides (number)
Sortie: none
Draws a convex polygon of the specified radius (either a single value or list of radii) and number of sides (must equal number of radii if radii provided in a list).
poly 10 6
poly [5 10 5 20] 4
polyellipse
Entrée: width (number) | height (number) | sides (number)
Sortie: none
Draws a convex polygon of the specified dimensions and sides.
polyellipse 20 10 10
polyoval
Entrée: width (number) | height (number) | sides (number)
Sortie: none
Creates a filled convex polygon of the specified dimensions and sides.
polyoval 10 20 5
polyspot
Aussi: ps
Entrée: radius (number) OR [radius1 radius2 radius3…] | sides (number)
Sortie: none
Creates a filled convex polygon of the specified radius (or radii if provided in a list) and number of sides (must equal number of radii, if list of radii provided).
polyspot 20 5
polyspot [10 5 20 30] 4
prism
Aussi: pri
Entrée: width | height | depth
Sortie: none
Creates a lined prism to the right, forward and under the turtle.
prism 20 10 30
pyramid
Aussi: py
Entrée: size (number) OR [width height depth] (list)
Sortie: none
Creates a pyramid (5-sided shape) of the specified size.
pyramid 10
pyramid [5 10 20]
pyramoid
Aussi: pyo
Entrée: size (number) | ratio (number)
Sortie: none
Creates a pyramoid (stretched pyramid) of the specified size and stretch ratio.
pyramoid 10 2
quad
Aussi: qd
Entrée: width | height
Sortie: none
Creates a 'quad', a two-dimensional filled rectangle of the specified width and height, to the front and right of the turtle, unless negative values are provided. If a list of a single item is provided for either parameter, quad will center the shape created on the appropriate turtle axis. See square
quad 20 10
quad -20 -10
ramp
Entrée: width (number) | height (number) | depth (number)
Sortie: none
Creates a filled wedge, or 'ramp' using the provided dimensions.
ramp 10 20 30
rat
Entrée: length
Sortie: none
Creates a filled isosceles right angle triangle with two sides of the same specified length.
rat 20
rect
Entrée: width (number) | height (number)
Sortie: none
Creates a pen-drawn rectangle of the specified width and height to the front and right of the current turtle, unless a parameter is supplied as a single-item list, in which case the rect is centered on the appropriate turtle axis. See quad, square
rect 10 20
rect [10] 20
resize
Entrée: imagename (word) | [width height] (list)
Sortie: none
Resizes the specified image and replaces it.
resize "image [100 50]
rhombus
Entrée: width (number) | height (number)
Sortie: none
Creates a 2D rhombus of the specified width and height.
rhombus 30 10
ring
Entrée: thickness (number) | inner radius (number) | segments (number)
Sortie: none
Creates a two-dimensional ring of the specified thickness, inner radius and segments. A segment number of 4 creates a square picture frame, while 3 creates a triangle. See ringarc
ring 10 30 10
ringarc
Entrée: thickness (number) | inner radius (number) | totalsegments (number) | arcsegments (number)
Sortie: none
Creates a partial ring of the specified number of segments. So, if the totalsegments specified were 10, an arcsegments value of 5 would create a half-ring.
ringarc 10 30 10 5
ringoid
Entrée: thickness (number) | inner radius (number) | segments (number) | ratio (number)
Sortie: none
Creates a two-dimensional ring of the specified thickness, inner radius and segments, stretched by the provided ratio. See ring
ringoid 10 30 10 2
ringoidarc
Entrée: thickness (number) | inner radius (number) | totalsegments (number) | arcsegments (number) | ratio (number)
Sortie: none
Creates a partial ringoid of the specified number of segments. So, if the totalsegments specified were 10, an arcsegments value of 5 would create a half-ring. If the arcsegments value provided is a list of two, the segments are created from the first value in the list to the second value. See ringarc, ringoid
ringoidarc 10 30 10 5
ringoidarc 5 10 20 [3 5]
roller
Entrée: thickness inner-radius OR [inner-radius near inner-radius far] depth sides
Sortie: none
Creates a roller-shaped 3D object of the given composition. See rollerarc
roller 10 30 30 20
rollerarc
Entrée: thickness inner-radius OR [inner-radius near inner-radius far] depth sides-total sides-used
Sortie: none
Creates a portion of a roller of the given sectors-used. See roller
rollerarc 10 30 20 10 2
sample
Entrée: image (word) | position (list)
Sortie: RGBA (list)
Sample returns a list of the RGBA values of the pixel at the specified position (given in terms of percentages, measured from the bottom-left corner of the image) in the specified loaded image. For example, sample "frog [50 50] will return the color of the pixel located at 50% of frog's height, and 50% of frog's width. Sample can be used to determine the color of a pixel underneath a turtle, for example, by doing a bit of funky math.
show sample "frog [50 50]
saveimage
Entrée: image | filename
Sortie: none
Saves an internally stored image. Useful for saving internally created or modified images.
saveimage "myimage "imagefile
setdotsize
Entrée: size (number)
Sortie: none
Sets the calling turtle's dot size. All of a turtle's dots are of the same size, but different turtles can have different-sized dots. See dotsize, dot, dotp.
setdotsize 5
seticosphereiterations
Aussi: sisi
Entrée: number
Sortie: none
Sets the complexity of the icosphere, from 0 to 3
seticosphereiterations 3
setoverlayresolution
Entrée: name (word) | ratio (number)
Sortie: none
Sets the resolution or pixel density of the named overlay, based on a ratio where 1 is 512 pixels by 384 pixels (at a 16:9 ratio)
setoverlayresolution "myrtlesview 2
setoverlaytransparency
Entrée: name (word) | boolean
Sortie: none
Turns on background transparency for the specified overlay. If transparency is off, the background color in the overlay view is solid.
setoverlaytransparency "myrtlesview on
setoverlayupdate
Entrée: name (word) | frames per second (number)
Sortie: none
Sets the update frequency of the named overlay to the provided number of frames per second. See newoverlay
setoverlayupdate "myrtlesview 10
setpins
Entrée: list of positions
Sortie: none
Sets the list of pins to the given list of lists.
setpins [[0 0 0] [10 10 10]]
setspecklecolors
Entrée: list
Sortie: none
Takes a list of colors to be used in the generation of speckle patterns. If you want to weight a random speckle towards a particular color, simply include it more than once in the request, such as the example below.
setspecklecolors [1 1 1 1 2 2 3]
setspecklecolors {:col1 :col1 :col2}
setspeckleplot
Entrée: plotname (word)
Sortie: none
Selects the name of the plot to use to generate a speckle, if using the plot style with speckle.
setspeckleplot "myplot
setspecklesize
Entrée: turtleSteps
Sortie: none
Sets the pixel size used in generating speckles, in turtleSteps.
setspecklesize 1
setspecklestyle
Entrée: "styletype
Sortie: none
Selects the style to use when generating speckles. You can choose from "repeat "dither "random or "plot.
setspecklestyle "random
setspheroidaxis
Aussi: ssa
Entrée: boolean
Sortie: none
Sets the axis by which spheroids are stretched. 0 is equatorial while 1 is polar. See spheroidaxis
setspheroidaxis 1
showoverlay
Entrée: name (word)
Sortie: none
Shows the specified overlay. See newoverlay
showoverlay "myrtlesview
showsticker
Entrée: name (word)
Sortie: none
Shows the sticker with the provided name. See placesticker
showsticker "marqueesticker
skewfiso
Aussi: skf
Entrée: half-width (turtle-units) | height | degrees
Sortie: none
Creates a filled isosceles triangle "skewed" by the given number of degrees in the X axis. Negative degree values are an acceptable input. See fiso
skewfiso 50 100 45
skewiso
Aussi: ski
Entrée: width (turtle-units) | height | degrees
Sortie: none
Creates an isosceles triangle "skewed" by the given number of degrees in the X axis. Negative degree values are an acceptable input. See iso
skewiso 50 100 45
skewpyramid
Aussi: skp
Entrée: size (turtle-units) OR [width height depth] (list) | degrees X | degrees Z
Sortie: none
Creates a pyramid "skewed" by the specified number of degrees in the X and Z directions.
skewpyramid 50 45 45
skewpyramoid
Aussi: skpo
Entrée: size (turtle-units) OR [width height depth] | stretch (ratio) | degrees X | degrees Z
Sortie: none
Creates a pyramid "skewed" by the specified number of degrees in the X and Z directions, and stretched by the specified ratio
skewpyramoid 50 3 45 45
skewquad
Aussi: skq
Entrée: width (turtle-units) | height (turtle-units) | degrees
Sortie: none
Creates a quad "skewed" by the specified number of degrees, a value which can be negative. See quad
skewquad 50 50 45
skewrect
Aussi: skr
Entrée: width (turtle-units) | height | degrees
Sortie: none
Creates a "skewed" rectangle of the given width and height, skewed by the specified number of degrees, a value which can be negative.
skewrect 100 50 -45
skewtraperect
Aussi: sktr
Entrée: width (turtle-units) | height | ratio | degrees
Sortie: none
Creates a "skewed" trapezoidal rectangle of the specified width and height, whose top is affected by the provided ratio and who is skewed by the specified number of degrees, a value which can be negative. See rect
skewtraperect 100 100 0.5 45
skewtrapevoxeloid
Aussi: skvo
Entrée: width | height | depth | ratio-W | ratio-D | degrees X | degrees Z
Sortie: none
Creates a skewed trapezoidal voxel, the width and depth of whose "top" or side in front of the turtle is stretched or contracted by the given ratios (depth and width), and who is then skewed by the given degree values in the X and Z axis, which can be negative. See trapevoxeloid
skewtrapevoxeloid 50 50 50 0.5 2 45 45
skewtrapezoid
Aussi: skt
Entrée: width (turtle-units) | height | ratio | degrees
Sortie: none
Creates a skewed trapezoidal quad of the specified width and height, whose top is affected by the provided ratio and who is skewed by the specified number of degrees, a value which can be negative.
skewtrapezoid 100 100 0.5 45
skewvoxeloid
Aussi: skv
Entrée: width (turtle-units) | height | depth | degrees X | degrees Z
Sortie: none
Creates a "skewed" voxeloid of the specified dimensions, distorted on the X and Z axis by the specified number of degrees, which can be negative.
skewvoxeloid 100 100 100 45 45
snapshot
Entrée: imagename (word)
Sortie: none
Takes a snapshot of the screen and places it into the internal image library with the given imagename. That image can then be used with 'sample' to provide basic 2D collision detection, or used on a 'billboard'. See listimages, sample, billboard
snapshot "screenshot
speckle
Entrée: none
Sortie: none
Enables 'speckling' (generated pixelated texturing) of any following square, quad, voxel and voxeloid shapes. These are configured using setspecklestyle (repeat, random or plot), setspecklecolors, setspecklesize and optionally setspeckleplot. nospeckle disables speckling
speckle
specklecolors
Entrée: none
Sortie: list
Returns the currently defined speckle colors. See speckle
show specklecolors
speckleplot
Entrée: none
Sortie: word
Returns the plot currently used by speckle in the plot style. See setspecklestyle
show speckleplot
specklesize
Entrée: none
Sortie: number
Returns the currently defined speckle size. See setspecklesize, speckle
show specklesize
specklestyle
Entrée: none
Sortie: word
Returns the current speckle style. See speckle
show specklestyle
"random
sphere
Aussi: sph
Entrée: radius (number) | stacks (number) | sectors (number)
Sortie: none
Creates a sphere of the specified radius using the specified number of stacks and the specified number of sectors. Small stack and sector values create interesting shapes. As opposed to icosphere
sphere 20 10 10
sphereslice
Aussi: sphs
Entrée: radius (number) | stacks (number) | sectorstotal (number) | sectorsused (number)
Sortie: none
Creates a partial sphere of the overall specified radius, using the specified number of vertical 'stacks', and specified number of horizontal 'sectors', based on the given total number of sectors, and the used (displayed) number of sectors. Like an orange cut vertically. See cutsphere, cutsphereslice
sphereslice 20 10 10 5
spheroid
Aussi: spd
Entrée: radius (number) | stacks (number) | sectors (number) | multiplier (number)
Sortie: none
Creates an spheroid of a specified radius, stacks and sectors, stretched using the provided multiplier.
sphereoid 20 10 10 2
spheroidaxis
Entrée: none
Sortie: boolean
Returns the current spheroid axis, the axis along which spheroids are stretched. 0 is equatorial and 1 is polar.
show spheroidaxis
spheroidslice
Aussi: spds
Entrée: radius (number) | stacks (number) | sectorstotal (number) | startsector (number) | endsector (number) | multiplier (number)
Sortie: none
Creates a partial spheroid of the overall specified radius, using the specified number of vertical 'stacks', and specified number of horizontal 'sectors', based on the given total number of sectors, and the startsector and endsector values, and stretched using the provided multiplier. Like a squashed orange cut vertically. See cutspheroid, cutspheroidslice
spheroidslice 20 10 10 5 10 2
spline
Entrée: resolution | points
Sortie: none
Converts lines connecting the last given number of points into a spline, adding the number of resolution points given for each base point converted. Turns a series of disjointed lines into a smooth curve. spline requires that the pen have been down when drawing the lines it converts, and will not work if the pen was up.
spline 5 10
splinepos
Entrée: resolution | [point1 point2…]
Sortie: list
Returns a list of spline points calculated from the given resolution and list of base points.
show splinepos 5 [[0 0 0] [10 10 10] [20 20 20]]
spot
Aussi: sp
Entrée: radius (number) OR [radius end%] OR [radius start% end%]
Sortie: none
Creates a filled circle of the specified radius. When given a list, creates a partial spot clipped vertically (lengthwise along the turtle's up direction). With two values [radius end%], clips from 0% to end%. With three values [radius start% end%], clips from start% to end%. 0% is the top of the spot, 100% is the bottom.
spot 50
spot [50 50]
spot [50 25 75]
square
Aussi: sq
Entrée: size (number)
Sortie: none
Creates a filled square of the specified size. If the parameter is supplied as a single-item list, then the square is centered on the turtle.
square 20
square [20]
stamp
Entrée: modelname (word) OR [modelname scale]
Sortie: none
'Stamps' a copy of the specified model at the current location using the current model scale, or the model scale specified in the list form of the input.
cs pu repeat 20 [setmodelscale repcount / 10 stamp "plane fd 3 * repcount]
stickers
Entrée: none
Sortie: list
Returns the currently defined stickers. See newsticker
show stickers
tent
Entrée: half-width (number) | height (number) | depth (number)
Sortie: none
Creates an opaque (solid) prism to the left, right and front of the turtle.
tent 10 10 5
tetrahedron
Aussi: th
Entrée: size (number)
Sortie: none
Creates a tetrahedron (4-sided shape) of the specified size.
tetrahedron 5
tetrahedroid
Aussi: tho
Entrée: size (number) | ratio (number)
Sortie: none
Creates a tetrahedroid (4-sided shape) of the specified size and stretched using the specified ratio.
tetrahedroid 5 2
tetrahedroid 10 0.5
toroid
Aussi: tro
Entrée: thickness (number) | radius (number) | sides (number) | segments (number) | ratio (number) OR [ratio-z ratio-x]
Sortie: none
Creates a torusoid, an extruded three-dimensional ring, stretched by a ratio where 1 is a normal torus.
toroid 10 30 4 16 0.5
toroidslice
Aussi: tros
Entrée: thickness (number) | radius (number) | sides (number) | totalsegments (number) | startsides (number) | endsides (number) | ratio
Sortie: none
Creates a 'slice' of a torus, based on the startsides and endsides value. Note that using a negative thickness value inverts the slice.
toroidslice 5 15 20 20 10 15 2
toroidslice -5 15 20 20 10 15 2
torusslice
Aussi: trs
Entrée: thickness (number) | radius (number) | sides (number) | totalsegments (number) | startsides (number) | endsides (number)
Sortie: none
Creates a 'slice' of a torus, based on the startsides and endsides value. Note that using a negative thickness value inverts the slice.
torusslice 5 15 20 20 10 15
torusslice -5 15 20 20 10 15
torus
Aussi: tr
Entrée: thickness (number) | radius (number) | sides (number) | segments (number)
Sortie: none
Creates a torus, also known as a rhombus or a donut, a three-dimensional ring. Sides and segments can be as low as 3.
torus 10 30 4 16
traperect
Aussi: tre
Entrée: width (turtle-units) | height | ratio
Sortie: none
Creates a trapezoidal rectangle of the given width, height and with its far end contracted or expanded by the given ratio. See rect
traperect 50 50 2
trapevoxeloid
Aussi: tvo
Entrée: width (turtle-units) | height | depth | ratio-W | ratio-D
Sortie: none
Creates a trapezoidal voxel, whose far 'end' is affected by the given width and depth ratios. If any of the first three parameters is given as a list with a single item, then the shape is centered on that parameter's axis.
trapevoxeloid 50 50 50 0.5 2
trapezoid
Aussi: tz
Entrée: width (turtle-units) | height | ratio
Sortie: none
Creates a quad whose far 'end' is expanded or contracted based on the provided ratio. See quad, skewtrapezoid
trapezoid 100 50 5
triangle
Aussi: tri
Entrée: width (number) | height (number)
Sortie: none
Creates a wireframe (pen-drawn) right-angle triangle to the front and right of the turtle.
triangle 10 20
tube
Aussi: tb
Entrée: radius (number) | depth (number) | sides (number)
Sortie: none
Creates a hollow tube.
tube 10 20 20
tubearc
Aussi: tba
Entrée: thickness (number) | radius (number) | sides (number) | totalsegments (number) | arcsegments (number)
Sortie: none
Creates a tube arc.
tubearc 5 15 20 20 10
tubearcslice
Aussi: tbas
Entrée: thickness (number) | radius (number) | sides (number) | totalsegments (number) | arcsegments (number) | startsides (number) | endsides (number)
Sortie: none
Creates a slice of a partial tube. Note: If you invert the thickness value, you can 'slice' the opposite side.
tubearcslice 5 15 20 20 10 5 15
tubeslice
Aussi: tbs
Entrée: radius (number) | depth (number) | sidestotal (number) | sidesused (number)
Sortie: none
Creates a 'slice' of a tube, based on the sidestotal and sidesused values.
tubeslice 20 20 10 4
tuboid
Aussi: tbo
Entrée: radius (number) | depth (number) | sides (number) | ratio (number)
Sortie: none
Creates a tuboid, or stretched tube.
tuboid 10 20 20 0.5
tuboidarc
Aussi: tboa
Entrée: thickness (number) | radius (number) | sides (number) | totalsegments (number) | arcsegments (number) | ratio (number)
Sortie: none
Creates a tube arc extruded by the provided ratio.
tuboidarc 5 15 20 20 10 2
tuboidarcslice
Aussi: tboas
Entrée: thickness (number) | radius (number) | totalsides (number) | totalsegments (number) | arcsegments (number) | startsides (number) | endsides | ratio (number)
Sortie: none
Creates a tube arc sliced by the provided sides values and extruded by the provided ratio.
tuboidarcslice 5 15 20 20 10 10 15 2
tuboidslice
Aussi: tbos
Entrée: radius (number) | depth (number) | sidestotal (number) | sidesused (number) | ratio (number)
Sortie: none
Creates a stretched 'slice' of a tube, based on the sidestotal and sidesused values, and the stretching ratio (normal is 1, half is 0.5, double is 2 etc.)
tuboidslice 10 20 20 10 0.5
tuboidslice 10 20 20 10 2
twosided
Aussi: tws
Entrée: none
Sortie: none
Lights both sides of the surface of a shape. Useful for shapes where both sides of the surface are visible. The default is that they are unlit. Whether to use twosided or not is a purely stylistic choice in most cases. See notwosided, which turns twosided off.
twosided
updatestamps
Entrée: none
Sortie: none
Causes stamps to be updated when the turtle model is updated. This is disabled by default. See noupdatestamp, updatestampp
updatestamps
voxel
Aussi: vx
Entrée: turtle-steps or [turtle-steps]
Sortie: none
Creates a filled cube turtle-steps wide, high and deep to the right, forward and down of the turtle, unless the parameter is provided as a list, in which case the voxel is created around the turtle. See voxeloid.
voxel 20
voxel [20]
voxeloid
Aussi: vxo
Entrée: turtle-steps-right turtle-steps-forward turtle-steps-deep
Sortie: none
Creates a filled cuboid to the right, forward and down of the turtle. If any parameter is provided as a list, eg [20], then center the voxel on that axis. See voxel.
voxeloid 10 20 30
voxeloid 10 [20] 30
voxeloid [10] [20] [30]
wedge
Entrée: turtle-steps-right turtle-steps-forward
Sortie: none
Creates a filled right-angle triangle turtle-steps-right from the turtle and turtle-steps-forward from the turtle in dimensions.
wedge 20 4
wiggle
Entrée: distance OR [orbitdegrees] OR [arcdegrees arcsize] | sine OR [sine1 sine2] | amp OR [amp1 amp2]
Sortie: none
Creates a 'wiggle', which can create AMAZING shapes using sine waves! Try these examples, and play with their values:
wiggle 100 10 5
wiggle [360] 18 4
beginfill wiggle [360 100] [10 5] 2 endfill
beginfill wiggle [360 50] [8 3] [2 1] endfill
icosphereiterations
Entrée: none
Sortie: number
Returns the current number of iterations used when creating icospheres.
print icosphereiterations
hinge
Entrée: "name [commands]
Sortie: none
Creates a hinge joint in a procedural model, for use inside NEWMODEL or SETMODEL blocks. Hinges allow parts of the model to be rotated independently after the model is created. The name is used to identify the hinge when using SWIVEL or SETHINGEORIENTATION. Commands inside the block create geometry that will be attached to this hinge and move with it. Hinges can be nested to create articulated hierarchies like robot arms.
newmodel "arm [
setpenstyle "tube setpw 3
setpc yellow fd 30
hinge "shoulder [
setpc orange fd 20
hinge "elbow [
setpc red fd 15
]
]
]
hinges
Entrée: "modelname
Sortie: list
Returns a list of hinge/joint names available in the specified model. Returns an empty list if the model has no hinges.
show hinges "arm
[shoulder elbow]
hingesp
Entrée: "modelname
Sortie: boolean
Returns TRUE if the specified model has hinges/joints, FALSE otherwise.
show hingesp "arm
TRUE
hingep
Entrée: "hingename
Sortie: boolean
Returns TRUE if the specified hinge exists in the current turtle's model, FALSE otherwise.
show hingep "shoulder
TRUE
listhinges
Entrée: none
Sortie: none
Prints a list of all loaded models that have hinges, along with their hinge names.
listhinges
arm: shoulder elbow
robot: head leftarm rightarm
sethingeorientation
Entrée: "hingename [pitch heading roll]
Sortie: none
Sets the orientation of the specified hinge to the given pitch, heading, and roll values in degrees. This is an absolute orientation - it sets the hinge TO these values, replacing any previous orientation. Child hinges in the hierarchy will move along with their parent.
sethingeorientation "shoulder [30 0 0]
sethingeorientation "elbow [0 45 0]
swivel
Entrée: "hingename heading | [heading pitch]
Sortie: none
Rotates the specified hinge BY the given amounts in degrees. Pass a single number to change heading only, or a list [heading pitch] to change both. This is a relative rotation - it adds to the current orientation. Useful for animations where you want to incrementally rotate a joint.
swivel "elbow 10
repeat 36 [swivel "elbow 10 wait 1]
swivel "shoulder [15 5]
hingeorientation
Entrée: "hingename
Sortie: list
Returns the current orientation of the specified hinge as a list [pitch heading roll] in degrees.
show hingeorientation "shoulder
[30 0 0]
hingeorientationorder
Entrée: "hingename
Sortie: word
Returns the current rotation order for the specified hinge. The order determines in which sequence pitch, heading, and roll rotations are applied. Default is "phr" (pitch, heading, roll).
show hingeorientationorder "shoulder
phr
sethingeorientationorder
Entrée: "hingename "order
Sortie: none
Sets the rotation order for the specified hinge. The order must be a permutation of p (pitch), h (heading), and r (roll). Valid orders are: phr, prh, hpr, hrp, rph, rhp. Different orders can produce different final orientations when multiple rotations are combined.
sethingeorientationorder "shoulder "hpr
resethinges
Entrée: none
Sortie: none
Resets all hinge orientations on the current turtle's model to [0 0 0]. Useful for returning an articulated model to its default pose.
resethinges
plotcopy
Entrée: "source "destination | [destination]
Sortie: none
Copies the content of plot "source to "destination. If the list syntax [destination] is used, only defined (non-zero) points are copied, leaving other points in the destination unchanged. If "destination is used (without brackets), the entire contents of source replaces destination completely. If destination does not exist when using "destination syntax, it will be created.
plotcopy "frame1 "frame2
plotcopy "frame1 [frame2]
setpinorigin
Entrée: [x y z]
Sortie: none
Sets the origin point used when drawing transformed pins. Drawing commands (pinline, pinfill, pinspline) will offset pins by this amount. Does not modify the original pins. Alias: spino
setpinorigin [100 50 0]
pin setpos [0 0 0] pin setpos [10 0 0] pin
pinline 2
; draws line from [100 50 0] to [110 50 0]
pinorigin
Entrée: none
Sortie: list
Returns the current pin origin offset as [x y z]. Alias: pino
setpinorigin [100 50 0]
show pinorigin
[100 50 0]
setpinscale
Entrée: scale
Sortie: none
Sets the scale factor used when drawing transformed pins. Drawing commands (pinline, pinfill, pinspline) will scale pins by this amount relative to the origin. Does not modify the original pins. Alias: spins
setpinscale 2
pin setpos [10 0 0] pin setpos [20 0 0] pin
pinline 2
; draws line scaled by 2
pinscale
Entrée: none
Sortie: number
Returns the current pin scale factor. Alias: pscl
setpinscale 2
show pinscale
2
setpintransform
Entrée: [a b c]
Sortie: none
Sets the rotation angles used when drawing transformed pins. The angles follow orientationorder (default phr = [pitch heading roll]). Drawing commands (pinline, pinfill, pinspline) will rotate pins by these angles. Does not modify the original pins. Alias: spint
setpintransform [0 90 0]
pin setpos [10 0 0] pin setpos [20 0 0] pin
pinline 2
; draws line rotated 90 degrees heading
pintransform
Entrée: none
Sortie: list
Returns the current pin transform angles as a list. Alias: pint
setpintransform [45 90 0]
show pintransform
[45 90 0]
xpins
Entrée: none
Sortie: list
Returns the pins with all transformations applied (scale, rotate, offset). Useful for inspecting the transformed pins without drawing them.
pin setpos [10 0 0] pin setpos [20 0 0] pin
setpinscale 2
setpinorigin [100 0 0]
show xpins
; shows scaled and offset pins