17th May 2009: Latest version: 0.9.95
- Manual rewritten. Can be viewed on-line within XLogo by selecting
menu Help / Online Manual.
- New primitive:
- SetDigits - set number of significant figures when calculating.
- Digits - return number of significant figures.
- New primitive:
- Text - return all procedure information (variables, body).
- New primitive:
- ExternalCommand - allow an external command to be launched.
- New primitive:
- PlayMP3 - begin playing named MP3 file.
- StopMP3 - stop playing named MP3 file.
- Primitive Zoom modified, now similar to other primitives.
- SetZoom - set the zoom factor.
- Zoom - return the zoom factor.
- Primitive Define modified, it now only receives two arguments.
- For example: Define "my [ [a b] [Print :a] [Forward :b] ]
will define the following procedure:
To my :a :b
Print :a
Forward :b
End
- New languages: Asturian, Catalan, Italian, Hungarian.
Previous XLogo version: 0.9.93b
- Manual updated.
- Better Viewer 3D:
- Ability to set four customized lights.
- Ability to add a fog effect on the main 3D scene.
- Two new loop strutures: primitives forever and foreach.
- New language: Greek
- Better editor performance with support for large files (several thousand lines).
- Better workspace management.
Primitives added or modified: eraseprocedure, erasevariable, erasepropertylist, contents, procedures, variables, propertylists.
- Two new arithmetic primitives: log, exp
- Primitives ed, edall for editor.
- Ability to select a zone on the drawing area using the mouse, for saving or printing.
- Primitive ifelse added.
Previous XLogo version: 0.9.92 (final)
New Features:
- Manual updated.
- Undo and Redo Editor buttons.
- Two new test operators <= and >=
- Launch language and main command on XLogo startup.
- Two new languages: Austrian and Galician.
- Property lists containing paired key-value items.
- Turtle can now move in 3D space. A Java 3D viewer displays points, planes and text in full 3D!
3D Primitives added...
- perspective
Switch to 3D mode.
- setxyz
Move the turtle to point given by coordinates x y z.
- setz
Move the turtle to point given by coordinate z. Similar to setx and sety.
- setorientation [roll pitch heading]
Set the turtle's orientation to roll pitch and heading values.
- orientation
Return the turtle's roll pitch and heading values.
- setroll
Set the turtle's roll angle.
- roll
Return the turtle's roll angle.
- setpitch
Set the turtle's pitch angle.
- pitch
Return the turtle's pitch angle.
3D Viewer Primitives added...
- polystart
Start recording the following turtle moves as polygons.
- polyend
Stop polygon recording.
- linestart
Start recording the following turtle moves as lines.
- lineend
Stop line recording.
- pointstart
Start recording the following turtle moves as points.
- pointend
Stop point recording.
- textstart
Start recording the following as text.
- textend
Stop text recording.
- View3D
Launch the 3D viewer.
Property List Primitives added...
- pprop putproperty
syntax: pprop listname key value
Add a property to the property list named listname.
- gprop getproperty
syntax: gprop listname key
Return the value associated with the key in the property list named listname.
- rprop removeproperty
syntax: rprop listname key
Remove the key-value couple from the property list named listname.
- plist propertylist
syntax: plist listname
Display all key-value couples in the property list named listname.
Previous XLogo version: 0.9.91
- Ability to draw Axis and a Grid as a background image. Now easier to
see the coordinates of any point in the drawing area. (Menu Tools-Prefs-Tab
Options)
- A 'play' button that can be used to run a specified procedure (or command).
- Added Primitives:
axis
xaxis
yaxis
stopaxis
stopgrid
bye
var? variable?
axiscolor
gridcolor
grid?
xaxis?
yaxis?
setgridcolor
setaxiscolor
Previous XLogo version: 0.9.90
- Procedures can now have optional variables. For example:
to test :a [ :b 100]
write :a write :b
end
test 10 will write 10 100
(test 10 20) will write 10 20
- By the same principle, some primitives accept a generalized form: write,
sum, product, or, and list, word, sentence. For example:
( sum 2 3 4 5 ) ---> returns 14
( list 1 [2 3] 4 [5 6] ) ---> returns [1 [2 3] 4 [5 6]]
- New GUI (Graphic User Interface) graphic components. You can now add
a button or a pull down menu to the drawing area, using the primitives
guiButton, guiMenu, guiPosition, guiAction, guiDraw and guiRemove.
- The primitives animation and trace have been modified. They no longer
have any True / False argument. To stop Animation or Trace mode, use primitives
StopAnimation and StopTrace. (You can also click on the camera icon to
stop animation mode).
- Ability to add a grid to the drawing area. Primatives Grid and StopGrid.
- You can now zoom into and out of the drawing area with 'zoom in' and
'zoom out' buttons in a new 'Toolbar' area. Use the horizontal and vertical
sliders to scroll around. Also copy, paste and cut buttons.
- Comments in the editor can now be written outside procedures.
Previous XLogo version: 0.9.25 e
- Define several Local variables at the same time. Eg: Local [ B C D E
]
- Many bug fixes and corrections, management of numbers in particular.
Previous XLogo version: 0.9.24
- An important new primative ResetAll
- This resets XLogo to a standard set of default values. This makes it
easier to distribute your programs, as they work the same on everbodys
machine. Simply include the primative ResetAll at the beginning of your
program. The values reset are:
- Screen Size = 1000 by 1000 pixels, Window
- Screen Color = White
- Pen Color = Black
- Pen Width = 1
- Pen Shape = Square
- Turtle Position = 0 0, Heading = 0, ShowTurtle, PenDown
- Drawing Quality = Normal
- Text Name and Font Name = Dialog
- Text Size and Font Size = 12 point
- Animation = False
- Trace = False
- Maximun Number of Turtles = 16
- New set of primatives for changing and reading the preference values
- SetScreenSize [xx yy] -Sets the screen size to xx by yy pixels
- ScreenSize -Returns the size of the screen
- SetPenWidth -Sets the width of the pen (not a new primative)
- PenWidth -Returns the width of the pen
- SetPenShape -Sets the pen shape to either 0 (square) or 1 (round)
- PenShape -Returns the shape of the pen
- SetDrawingQuality -Sets the drawing quality to 0 (normal), 1 (high)
or 2 (low)
- DrawingQuality -Returns the drawing quality
- SetTurtlesMax -Sets the maximum number of turtles
- TurtlesMax -Returns the maximum number of turtles
- Second important change is the way in which ClearScreen works.
- ClearScreen now resets the pen and screen colors to your preference
values
- Note that ResetAll does not change your pen and screen colors preference
values
- SetScreenColor does not now change the pen color or move the turtle
to the home position Primitive name changes
- The text area primatives have been changed to make them more logical
and reflect primative names for fonts in the screen area.
- Note the use of 'Text' for text area primatives and 'Font' for screen
area primatives.
- SetFontText ---> SetTextSize shortform
SetTS
- FontText ---> TextSize shortform
TS
- SetFontNameText ---> SetTextName shortform
SetTN
- FontNameText ---> TextName shortform
TN
- SetColorText ---> SetTextColor shortform
SetTC
- ColorText ---> TextColor shortform
TC
- Also three primative names have been updated.
- ListVariables ---> Variables shortform
Vars
- ListFiles ---> Files
- PosMouse ---> MousePos
Previous XLogo version: 0.9.23
- New primitives for network use
- ListenTCP - wait for other computer on the network to give instructions.
- ChatTCP - open a chat dialog on both computers.
- ExecuteTCP - execute instruction on other computer on the network.
Previous XLogo version: 0.9.22a
- Two new primitives added: ZoneSize and LabelLength
- ZoneSize returns the co-ordinates for the visible upper left corner
and lower right corner of the graphics screen. For example, if 'ZoneSize'
returns [-200 200 400 -300], it means the upper left corner's co-ordinates
are -200 200 and the lower right corner's co-ordinates are 400 -300.
You can use this to scale drawings to better fit the users graphics
screen.
- LabelLength returns, in pixels, the length of a label. For example,
using LabelLength [Hello, how are you?] will determine if you have
enough space on screen for the complete label to be written. Or you
could use it to create centred labels.
- Three primitives renamed
- SetFont --> SetFontSize shortform
SetFS
- Font --> FontSize shortform
FS
- SSep --> SetSeperation shortform
SetSep
- See Loic's French pages for changes to earlier XLogo versions.