# Release Notes GeoGebra 3.0

# RELEASE NOTES for GeoGebra March 22, 2008

http://www.geogebra.org

You can get the latest version of GeoGebra as Java WebStart or download packages for several platforms at www.geogebra.org.

# Bug Fix Updates

GeoGebra 3.0.1.0 - April 24, 2008

* Pdf export of constructions with images works now * Printing of cconstruction protocol fixed

GeoGebra 3.0.2.0 - April 25, 2008

* Calculation error in cbrt(x) fixed

# New in User Interface

- User Defined Tools

- You can now create your own tools based on an existing construction. Choose "Create new tool" in the "Tools" menu, specify the output and input objects of your tool and choose a name for the toolbar and a command name. - Your tool can be used both with the mouse and as a command in the input field. All tools are automatically saved in your "ggb" construction file. - You can use any image for the toolbar icon. GeoGebra resizes your image automatically to 32x32 pixels. - Use the "Manage tools" dialog (menu "Tools") to change the names or the icon of your tools. You can also delete or save selected tools there. - You can save selected tools in a GeoGebra Tools File ("ggt"). This file can be opened at any time by using "File", "Open" to load its tools in another construction. Note that opening a "ggt" file does not change your current construction, but opening a "ggb" file does.

- Customizeable Toolbar

You can now customize the tools in GeoGebra's toolbar (menu "Tools"). This is especially useful for creating dynamic worksheets that include a restricted toolbar. The toolbar setting is saved with your construction in a .ggb file.

- Persistence / Saveable Settings

GeoGebra now remembers your favorite settings (menu "Options", "Save settings"), your last four ggb files and working directory.

- Selection Rectangle

Choose "move" mode, then press and hold the left mouse key to pull up a rectangle that lets you select multiple objects. You may then move multiple objects by dragging one of the selected. The selection rectangle can also be used to specify a part of the graphics window for printing, exporting pictures and for dynamic worksheets (see "File" menu).

- New Properties Dialog

- The objects in the properties dialog ("Edit" menu) are now organized by types (points, lines, etc.) which makes it much easier to handle large numbers of objects. - On the right side, the different elements are now organized in tabs. - Name and definition of objects can be changed directly in text fields. - Selection rectangle can be used to select several objects from the graphics window

- Axes scaling by dragging

Choose "move drawing pad" mode and drag one of the axes to change its scale. You can also do this from any other mode by pressing Shift and then drag an axis. Note: Shift + Drag also lets you move the drawing pad.

- Axes properties (right click on drawing pad)

- hide/show coordinate axes individually - hide/show minor or all ticks - bold axes styles

- New coordinate style for points and vectors "A: (x, y)"

In the "Options" menu you will now find three coordinate styles: A = (x, y), A(x|y) and the new A: (x, y)

- Labelling of new objects

In the "Options" menu you can now specify whether the label of a newly created object should be shown or not. Note: The setting "Automatic" shows labels when the algebra window is open while you create new objects.

- Fast renaming

After creating a new object or selecting an existing one, start typing to rename this object.

- Fast dragging

You can now move objects in any mode by dragging with the right mouse button pressed.

- Press "Esc" key to close an open dialog or to get back to "Move" mode

- Enhanced MacOS X Support

- Menu bar is on top of screen - Keyboard shortcuts use Command/Apple key on Mac and Control key on other platforms - Double click on ggb file opens it in GeoGebra

# New in Toolbar

- New Tool: "Regular polygon"

specify two points on the polygon and the total number of vertices

- New Tool: "Area"

of polygon, circle, ellipse

- New Tool: "Slope"

of line

- New Tool: "Checkbox to show and hide objects"

lets you create a checkbox (boolean value) to show and hide other objects Note: this is done using the advanced option "Condition to show object" (see properties dialog)

- Extended Tool: "Distance and length" now shows dynamic texts for

- distance of two points, length of segment - distance between point and line - circumference of circle and circular sector - perimeter of polygon

# New Features

- Point on Polygon

You can now create a point on the outline of a polygon by selecting the "New point" tool and clicking on a polygon.

- Point on Locus Line

You can now put a point on a locus line using the "New point" tool.

- Parametric curves

Curve[ expression, expression, variable, from, to ] e.g. c = Curve[ 2 cos(t), 2 sin(t), t, 0, 2pi ] The from and to parameters are dynamic, i.e. you can use slider variables there. Curves can be used like functions in arithmetic expressions, e.g. c(3) returns a point that depends on the curve. You can also place a point on a curve. New commands: Derivative[ <Curve> ]

- Transformations for groups of objects

All transformation tools (mirror, rotate, translate, dilate) now support the selection of groups of objects. Example: to mirror several objects at a point, choose the respective tool from the toolbar. Then select a group of objects using the selection rectangle (drag mouse). Finally, click on the point where these objects should be reflected.

- Lists of objects

e.g. L = { A, B, C }

- Sequence command to generate lists of objects:

Sequence[ expression, variable, from, to ] Sequence[ expression, variable, from, to, step ] e.g. L = Sequence[ (2, i), i, 1, 5 ] The from and to parameters are dynamic, i.e. you can use slider variables there.

- Interpolation polynomial

Polynomial[A, B, C] or Polynomial[{A, B, C}] creates a polynomial of degree n-1 through n given points

- Continuity of intersection points:

You can now turn on/off the continuity heuristic in the options menu. GeoGebra uses a near-to-heuristic to keep moving intersection points (line-conic, conic-conic) close to their old positions and avoid jumping intersection points. However, in some situations this heuristic leads to unwanted results, so you can now turn it on or off in the options menu. By default this heuristic is now turned off. Note: for user defined tools continuity is always turned off.

- New built in operations / functions

- Euler constant introduced: the exponential function can now

be written both as e^x or exp(x)

- New logarithm functions: ln(x) or log(x) for natural logarithm (of e) ld(x) for logarithm of 2

lg(x) for logarithm of 10

- unary plus like in +4 * -2 is valid now - random() for a random number between 0 and 1 select in algebra window and use arrow keys to get a new value - cbrt(x) for cubic root function (supports derivative and integral too)

- Boolean values ("true" and "false") and operations ("and", "or", "not",

<, <=, >=, >, "equal", "unequal", "parallel" and "perpendicular", (see list next to input field).

- Condition to show object

In the properties dialog you can now specify a condition for the visibility of an object in the graphics window (see "advanced" tab).

- Conditional functions, e.g. f(x) = If[ x < 3, sin(x), x^2 ]

You can use derivatives and integrals of such functions and intersect them.

- Decorations for segments and angles

In the properties dialog you can choose ticks and arcs to decorate segments and angles

- Size of drawingpad is saved in ggb files now

- Export of dynamic worksheets

- new dialog with "advanced" tab to set applet parameters - option in "advanced" tab to export dynamic worksheet files without jar files. Such worksheets use the highly packed jar files on GeoGebra's web server and archive http://www.geogebra.org/webstart/geogebra.jar

- Export drawing pad as picture: new formats ...

- Portable Document Format (PDF) - Scaleable Vector Graphics (SVG) - Enhanced Metafile Format (EMF) - PSTricks (for LaTeX), contribution by Loïc Le Coq

# New Commands

AffineRatio[ <Point A>, <Point B>, <Point C> ]

returns the affine ratio lambda of three collinear points, where C = A + lambda * AB

Area[ <Conic> ]

returns the area of a circle or ellipse

Circumference[ conic ]

returns the circumference of a circle

CrossRatio[ <Point A>, <Point B>, <Point C>, <Point D> ]

returns the cross ration lambda of four collinear points, where lambda = AffineRatio[B, C, D] / AffineRatio[A, C, D]

Curvature[ <Point A>, <Function f> ]

returns the curvature of f in point A

Curvature[ <Point A>, <Curve c> ]

returns the curvature of c in point A

CurvatureVector[ <Point A>, <Function f> ]

returns the curvature vector of f in point A

CurvatureVector[ <Point A>, <Curve c> ]

returns the curvature vector of c in point A

Curve[ expression, expression, variable, from, to ]

creates a parametric curve, e.g. Curve[ 2 cos(t), 2 sin(t), t, 0, 2pi ]

Div[ <Number a>, <Number b> ]

returns the integer quotient of a and b

Element[ <List l>, <Number n> ]

returns the n-th element of list l

Iteration[ f(x), x0, n ]

returns f applied n-times to x0

IterationList[ f(x), x0, n ]

returns a list of the results of applying f to x0 0 through n times

Length[ <Function>, <Number x1>, <Number x2> ]

returns the length of the function graph between two x1 and x2

Length[ <Function>, <Point>, <Point> ]

returns the length of the function graph between two points on the graph

Length[ <Curve>, <number t1>, <number t2> ]

returns the length of the curve between two t1 and t2

Length[ <Curve>, <Point>, <Point> ]

returns the length of the curve between two points on the curve

Length[ <List l> ]

returns the number of elements of list l

Max[ <Number a>, <Number b> ]

returns the maximum of a and b

Max[ <List l> ]

returns the largest number in list l

Min[ <Number a>, <Number b> ]

returns the minimum of a and b

Min[ <List l> ]

returns the smallest number in list l

Mod[ <Number a>, <Number b> ]

returns gives the remainder on division of a by b

Name[object]

returns text showing the name of the given object

OsculatingCircle[ <Point A>, <Function f> ]

returns the osculating circle of f in point A

OsculatingCircle[ <Point A>, <Curve c> ]

returns the osculating circle of c in point A

Perimeter[ polygon ]

returns the perimeter of a polygon

Polygon[ <Point A>, <Point B>, <Number n> ]

creates a regular polygon with n points where A and B are the first two vertices

Sequence[ expression, variable, from, to ] Sequence[ expression, variable, from, to, step ]

creates a list of objects, e.g. Sequence[ (2, i), i, 1, 5 ]

Tangent[ <Point A>, <Curve c> ]

returns the tangent to curve c in point A

# JavaScript and Applets

- new reset icon ("refresh" instead of "GeoGebra ellipse")
- GeoGebraApplet to JavaScript communication: listeners for add, remove, rename, update
- a lot of new methods to access the GeoGebraApplet from JavaScript

see http://www.geogebra.org/source/program/applet/geogebra_applet_javascript.html

- applet parameter "rightClickEnabled" to disable context menus and properties dialog
- applet parameter "borderColor" to set color of border line around applet panel

# New Languages

Arabic, Bulgarian, Simplified Chinese, Finish, Greek, Hebrew, Japanese, Macedonian, Polish, Portuguese of Portugal, Persian, Russian, Swedish Turkish, Vietnamese. Thanks to our great translators, GeoGebra now comes in 39 languages!

# Documentation

The "GeoGebra Help" document has been revised, comes in a new design and is easily searchable (see "Help" menu in GeoGebra).

# New License

You are free to copy, distribute and transmit GeoGebra for non-commercial purposes. Please see the GeoGebra license for details. http://www.geogebra.org/download/license.txt

# Enhancements

- entering functions using "y=" is now possible, e.g. "y = sin(x)" is now

understood like "sin(x)"

- f(x) = x^(a/b) is now plotted for negative x too if a is an integer and b an odd number
- mirroring of a point at a line using line/circle intersections is now possible
- specify name of slider on creation in slider dialog
- objects that are undefined when created are now shown in algebra window

(except intersection points)

- new plotting algorithm for functions and curves
- smoother plotting of functions, locus lines and hyperbolas
- click on input button toggles between input field mode and move mode
- selected toolbar button shows blue border to emphasize currently selected tool
- default label of polygons changed from "P" to "poly"
- intersection of functions, function-line

- automatic adaption of start value when startpoint has no name (i.e. when you clicked on the intersection to get it)

- root finding of non-polynomial functions

- false position replaced by Brent's method in Root[f, a, b] - added automatic valid domain search for Newton's and Brent's method

- transformation commands now always create dependent objects and don't change free input

# Bugs fixed

- fixed images are saved correctly now
- centroid command now computes centroid of area, not of vertices
- location of single intersection points after reopening file fixed
- location of tangents to circle after reopening file fixed
- made intersection of conic sections numerically stabler
- made intersection of lines numerically stabler
- corner command of images
- text keeps formating when edited now
- Esc-key in input field clears text again
- test point-on-parabola in vertex position fixed
- line through point at infinity works again
- slider with show label "name" is saved correctly now
- intersect line-conic: first-intersection initing problem fixed
- Function[ <constant number variable>, from, to ] works now
- Mode "Input Field": input field gets focus again after selecting object in algebra window
- Breakpoints in construction protocol
- and many more ;-)