Ideas for GeoGebra
Ideas that would make good mini-projects for new developers:
- DONE new tool for whiteboards: draw with the mouse/pen, when you finish (escape or change tool) it's converted to a GeoImage
- import ggb files into JSXGraph
Parser
- DONE Arabic numbers
- DONE set difference for lists, maybe using list1\list2 notation (add command SetDifference[ ] to work like CellRange[ ])
- DONE set operators: is a member of, contains, etc
- DONE allow a = 70% (gives a = 0.7)
- modulus signs y = |x|, y=| 3 - (|x|) |
(could also then replace abs(x) with "(|x|)" for display, brackets probably necessary to cope with nesting)
- syntax (u) to convert a Vector/Complex Number to a Point
- add functions of the form
r(t) = ( t, t2)
as another way to create such curves with an automatic interval like
[-10,10] or something.
Options
- color choices for spreadsheet (visually impaired users)
- display tree view in Algebra View
- option to remove an object from a list when it is deleted rather than deleting the list
- Display coordinates in the corner of the drawing pad Always/Never/Auto
Auto = current behaviour (when origin not on screen
- option to make alt-click behaviour the default
- option to label points in Roman/Greek/Arabic (code already there)
- option for whether atan() etc return answer in degrees or radians. see kernel.arcusFunctionCreatesAngle NB needs to be a separate option from the existing "Angle Unit"
- reverse mouse zooming
- (maybe) option to display the values of complex numbers in Euler Form. A e{i \theta}
- choose how long tooltips show
- allow negative r for polar graphs + coords (for US :)
- DONE option for transparent PNG export
- DONE option for EMF or EMF+ export (code already there)
Tools Bugs etc
- DONE tools inherit the conditions to show object, dynamic color, layer?
JavaScript / Scripting
- JavaScript method ggbKeyPressed() return true -> e.consumed()
pass key as a string or int??
- JavaScript method recomputeAllObjects() ?
- javascript method showMessage() (or implement alert() for scripts)
- javascript controlled export of a pstricks file or png file
- javascript RelativeCopy command
- javascript setConditionToShowObject(), setDynamicRed() etc
- JavaScript openURL()
- get/setCaption()
- ggbApplet.alert()
- ggbApplet.setJavaScript() (useful on new object listener)
- String ggbApplet.input(String) - not needed with GeoTextFields? (click on GeoGebra object -> inserts object name)
- option "use Browser for JavaScript" (uses Rhino when unchecked)
- is3DAvailable()
- getSelectedObject(n)
- getNoOfSelectedObjects()
- ggbApplet.loadBase64("kuhkh")
- DONE change the two-level scripting tab-structure to:
On change GGB Script Javascript On click GGB Script Javascript On file load GGB Script Javascript (current Global Javascript
3D
- Polyhedra commands
http://reference.wolfram.com/mathematica/PolyhedronOperations/tutorial/PolyhedronOperations.html
Markus's List
- introduce a
difference between SPEED and QUALITY setting for the views, so that
e.g. plotting is done faster (with lower quality) while we drag
objects.
- threaded views. I.e. each view does not
update objects right away but only at certain intervals and possibly
after other views are done
- polygon command to also output list of segments
- DONE polygon[ list ]
- TaylorPolynomial[sin(cos(x)), 0, 10] very slow (MathPiper)
20090705 from Ted:
Try Taylor3 (which is an implementation of Taylor series expansion by doing calculation on series directly.):
In> Taylor3(x,0,10)Sin(Cos(x))
Result> 305353/362880-(4357*x2)/16128-(79999*x4)/967680+(162779*x6)/5806080-(3127039*x8)/1625702400-(566989*x10)/1170505728
Applet Parameters
- DONE add a applet parameter (something like "enableObjectsList" true/false, default "true") which prevented the emergence of these popups?
- DONE showCoordsWhenDragging
- allowDragBackground
http://www.geogebra.org/forum/viewtopic.php?f=13&t=7802
- DONE ggbOnInitParam (or read applet name?)
http://www.geogebra.org/forum/viewtopic.php?f=22&t=8191
Other stuff
- DONE RandomElement[]
- DONE Shuffle[]
- RandomBeta[] etc http://www.xycoon.com/beta.htm
- 2x2 matrix * conic
- DONE partial fractions, Apart()
- DONE Element[text,n], Length[text]
| " " | " | |
- DONE automatically create objects, eg grad = AB/BC creates BC=Distance[B,C] etc
- SetAnimationSpeed[A,2 b - c]
- DONE StartAnimatins[]
- DONE StopAnimations[]
- animation on/off to minipropertiespanel?
- View -> Layers... -> checkbox to show/hide all of a layer?
- SetAxesRatio[xAxis, yAxis] (eg SetAxesRatio[1,1] for 1:1), this can be extended to 3D by adding a third parameter for zAxis
- record to spreadsheet tool -> click on function -> start, end, increment -> fill two columns
- allow FormulaText["\sqrt{x}",(3,4)] (like Text[ ])
- Piecewise[lower1,upper1,f1,upper2,f2,...] so that Integral[] works nicely (continuous)
Maybe conditions would be more general, e.g. Piecewise[cond1, f1, cond2, f2, ...] like Piecewise[ 2 < x < 3, x2, 3 <= x < 4, x ]
- DONE Open from URL (for ggbBase64 files)
- DONE show portions of circles etc near intersection points
non-hacky, i.e. preserves the isolation between kernel and EuclidianView
works for different types of objects (e.g. conic - line, conic - conic, etc.)
it could be an option of an intersection point to "show trimmed
intersecting lines". We could do this visually in the following way:
use a small circle or rectangle around the intersection point to
clip the Drawable objects of the intersecting parent objects
everything should be
done in the EuclidianView package, just the flag can go into GeoPoint.
- export png etc from command line?
- Recursive[i+1,i,3,5]
would mean that the cycle variable is i, its initial value is 3, it is incremented by 1 in each step and 5 steps are played. Is it possible to add this structure?
- DONE Rotate[list_of_points,α,A]
- DONE Unicode constants class
- Direction[slider]
- DONE RandomUniform[a,b]
- right-click on function/list -> copy to spreadsheet -> dialog (row/column, start, end, step)
- add history.xml file with saving history (use
System.getProperty("user.name"); and date)
- MathPiper: BuiltinPrecisionSet(15) (or maybe more digits?)
- DONE use apache commons math 2.0 instead of JAMA
- Insert ggb file into construction
- a geogebra_statistics.jar file that would include
the spreadsheet stuff, kernel.statistics, and the Apache library
- automated testing: javascript: load files, issue commands, check bitmaps (MD5?)
- DONE rescale applet like C.a.R. using
<applet style="width:10em; height:10em;"
- SCORM export
*Add "Enable Shift-Drag-Zoom" to the menu options in the Advanced Export dialog box. Many people are not aware that they can turn zooming off. This is the only applet parameter not included in the dialog box, so this would make things complete.
- Update the online help to include a discussion of the applet parameters. At the very least it should link to the Applet Parameter documentation in the wiki ( http://www.geogebra.org/en/wiki/index.php/GeoGebra_Applet_Parameters).
- Update the online help so that ctrl-r is included in the keyboard shortcut reference table.
- change "Enable right click" in dialog to "Enable right click and keyboard shortcut features"
- extend the FitExp command so that you can force it through a point (eg known y-intercept)
FitExp[ list, (0,800) ]
- allow select objects with rectangle then select reflect tool, then select line/point/circle
- DONE transparent PNGs?
- "x/2+3=5" is autoconverted to LaTeX form
- options -> rounding -> fractions (maybe just for texts)
- options -> rounding -> percentages (maybe just for texts)
- Ellipse[a,b] -> x2/a2 + y2/b2 = 1
- Ellipse[a,b,p,q] -> (x-p)2/a2 + (y-q)2/b2 = 1
- Hyperbola[a,b] -> x2/a2 - y2/b2 = 1
- Hyperbola[a,b,-1] -> x2/a2 - y2/b2 = -1
- chart wizard
- DONE include EMF+
- DONE grid lock for moving polygon, segment etc (use first point)
- in properties dialog, "Graphs" section for histograms etc
- RESOLVED alt-space for non-breaking space (doesn't work, added in specialchars menu)
- DONE select cells in spreadsheet -> create table
- proper moodle plugin (appear in menu, upload a ggb file)
- record multiple objects to spreadsheet, maybe use lists {area, radius}
- allow A to refer to the spreadsheet column
automatically omit missing cells
- insert row/column -> update A1:C5
- DONE C1=(A1,B1)
fix C1
delete A1 -> C1 undefined rather than being deleted
- DONE boolean IsInList[List, Element] or ListContains[]
- full screen option (no toolbars etc)
- multiple Spreadsheet Views?
- relative copy: copy/update animation speed (http://www.geogebra.org/forum/viewtopic.php?f=8&t=6922&p=29828#p29828)
- record to spreadsheet tool: drag rectangle around points -> column A, B
- DONE sqrt(-2+0i)
- DONE Element[matrix, row, col]
- Sequence[If[n=0,1,Element[self,n-1]*n],n,0,20] for 20 factorial
- DONE slider option "whole number"
- DONE complex conjugate conjugate()
- DONE support for Arabic numbers etc
The simplest solution that comes to my mind is simply having a switch
at the end of kernel.format() that would call a new method String
convertNumberCharacters(String standardNumber, int numeralID)
replacing every number character in the string. There are different
ways of writing numbers, see
http://en.wikipedia.org/wiki/Hindu-Arabic_numeral_system, so we should
go for a general solution
- segment decoration - arrow at both ends
- DONE replace StringBuffers with StringBuilders after Markus has merged 3.2 in
- "A line joining a planet and the sun sweeps out equal areas during equal intervals of time."
I suggested to use the command "sector[]" and add an optional parameter giving one of the focal points as vertex of the segment.
- shouldn't be able to drag Point[If[x > 0, -1]] left of the y-axis
- use the tool trace to spreadsheet to get A's coordinates into the spreadsheet by
dragging A with the mouse or using the arrow keys
*DONE tool "Create trace points" (or better name ;-)
that creates new points while you drag a point. These points could
have special names, i.e. the name of the first empty column in the
spreadsheet like "C" and consecutive numbers, so "C1", "C2", "C3" and
so on. The tool would work like the move tool but create these points
also (where the label of the points is hidden and probably their size
should be small by default).
- DONE dynamic slider range
- DONE allow If[0<x<2,etc instead of If[x>0 && x<2,etc ? or a new object GeoInterval 0 < x <3
- allow f(x) = |x|, maybe insist on brackets for eg |x|x+1|x-1|
- DONE get rid of selection menu when *dragging* (ie when two points are on top of each other)
- DONE use layers to help select objects when clicking or dragging
- RectangleSum[ f, a, b, n, location ]
to give the rectangle sum of function f(x) in intervall [a, b] with n
rectangles. location could be an optional number in [0,1] with 0 =
left border of interval, 1 = right border of each interval or any
value in between for the rectangle hights (e.g. 0.5 = midpoint)
- DONE latex form for matrices
- DONE add "Complex Form" with "Cartesian coordinates" and "Polar coordinates" in the contextual menu of a point OR forumla view for algebraView
- DONE allow 3 + 4i, i fixed
- allow e(3+2i)
- (option to) save undo information in ggb file
- "report bug" option to send java console and xml by email/web form
- DONE CountIf[ x>3 && x<=4 , <list> ]
- sound visualization (mathmagic's kalaidescope? http://www.geogebra.org/forum/viewtopic.php?f=2&t=2543 )
- save GGB file when GeoGebra crashes (combine with autosave feature?) and print xml to console
- monitor memory usage, dump undo info (maybe to tmp folder?)
- color for barcharts - HOW?
- DONE Edit -> Select descendants/ancestors
- DONE Monitor memory usage eg in Sequence[] and return undefined if we run out
- DONE "attach point" tool
- DONE layers for booleans(checkboxes)
- DONE allow Table[{list1}, {list2}, ...], maybe horizontal oprion
- radio buttons (maybe using checkbox_1_1, checkbox_1_2, ... syntax?)
- matrix * image
- look at alignment in Persian etc, also change command syntax to [3]Intersect???
Axes
- Condition to show, eg "x > -1" (Advanced tab?)
- DONE allow axes to intersect at a given point
- sticky axes at top and/or bottom of screen
- allow more than one set of axes, put in properties dialog
support for y=|x|
Automatic Animations
- DONE point on path
- DONE allow animation over several objects eg {semicircle, line, semicircle, line}
Interface copy, cut, paste
- DONE default properties in properties dialog
Slope: make start point changeable in properties include Equation Editor dragmath
Modes
Trace on/off Fix on/off
==Lists & List Support== list element (e.g. points) style changeable
see AlgoSequence "setVisualStyle"
- DONE Polyline
- DONE Polygon for lists: (AlgoPolygon)
Sumexpression, var, from, to command
Commands
- IsVisible[Object]
- DONE Polyline and Polygon for list of points
- DONE Polyline[ , ..., ]
Intersections of parametric curves with lines, functions functions, conic sections locus lines with lines, functions, etc.
Locus Improvement locus drawing algorithm,
avoid multiple evaluations of Q for same point P (especially for non-continous case)
Macros
- DONE tool with number as first argument: show dialog on click
I've create macro to go from A to B, form B to C .... from E to F.
When you load the file or when you move the drawing pad , all the macro are not visible
(except the last), they become visible if you move a point. (I hope you anderstand ;) )
file: macro_magicvinni.ggb "Copy visual styles" for input objects (column in create tools dialog) Edit Button for Tools (if all objects are still there) What happens with special numbers like Slope[], Integral[] or angles when they are macro output? command overloading for user defined tools (Reimund Albers) selection rectangle for overloaded user defined tools (Reimund Albers)
(group of objects for first argument of tool-command) static objects, i.e. input that does not need to be reselected again and again
replace object with same name: ask first
JavaScript and Applets setXML: rebuild GUI afterwards to show/hide algebra window
HotEqn:
use to show equations in spreadsheet + algebra views
==Functions==
- DONE allow If[0<x<2,etc instead of If[x>0 && x<2,etc ?
- boolean ftions isInside, isOutside, isOn for point and conic/sector/polygon
Wishes
- HO: measurement transfer
- Grouping of objects for transformations
(e.g. for paperfolding, Richard)
- Locus dependent on Slider (Josef Boehm)
- asymptotes of the function f(x)=(x2+1)/(x2-1)
rational function support
- DONE Inequalities: 3x + 4y <= 5
- translate the words "true" and "false"
- "is tangential to" as boolean comparison
- DONE find index of data element
- DONE Text dialog: use JEditorPane to show variable names in bold
- point on function / line: change y-coord > adapt x coord
- DONE path objects: list of curves, segments, etc. to put point on (which can then be used for animation)
- DONE two euclidian views (property for object to be shown in which one)
- right click on "y = 3x + 5" and select "Generalize" should create
sliders and redefine to "y = a x + b"
Autograph ideas
Pen devices (white boards, tablets instead of mouse, no keyboard) board instead of mouse useable without keyboard
-> screen keyboard
only one line with 0-9, A-Z pen to write on graphics window
-> get BOARD
- use polybezier class for drawing hyperbolae (except when the angle between the asymptotes is small)
- DONE click on small circle in algebra window to show/hide object
- DONE control animation with checkbox
- min/max[function,function]
Mobius function, divisor functions http://en.wikipedia.org/wiki/M%C3%B6bius_function http://en.wikipedia.org/wiki/Divisor_function
- DONE shift-right-drag rectangle to allow change of aspect ratio when zooming
- fix/use these
Eval=Eval
EvalSyntax=Eval[ <Text> ]
EvalYacas=EvalYacas
EvalYacasSyntax=EvalYacas[ <Text> ]
ToYacasString=ToYacasString
ToYacasStringSyntax= ToYacasString[ <Object> ]
- boolean sortPointList(GeoList in,GeoList out);
and
boolean sortPointList2Array(GeoList in, double[] xout,double[] out);
to factor out from commands
- DONE Polyline=Polyline, PolylineSyntax=Polyline[ <Point>, ..., <Point> ]
- DONE LimitSyntax=Limit[ <Function>, <Variable>, <Number> ]
- DONE use thumbnail in ggb file in preview
- DONE change old key to Excentricity=LinearEccentricity
add new key and command: Eccentricity=Eccentricity
http://en.wikipedia.org/wiki/Eccentricity_(mathematics)
DONE also add LinearEccentricityOfA=LinearEccentricity of %0
and change usage of EccentricityOfA=Eccentricity of %0
- all kernel computations to run in a separate thread and can be stopped when they take too long
- add text for Input Mode (NB can't just change it - currently same text used when eg properties dialog open)
- Path[ <list of lines, conics, loci> ]
- interface SpreadsheetTraceable and add eg polygons, GeoNumerics
- DONE captions - convert A2 into unicode squared (maybe allow A = $ x2 $)
- DONE whiteboard tool - allow drawing (writing) then convert to bitmap -> Image
- The TI-Nspire CAS has the following for polynomial functions:
polyQuotient(8 x³ - 13 x² - 32 x + 36,x² - 3 x + 2,x) = 8x+11.
polyRemainder(8 x³ - 13 x² - 32 x + 36,x² - 3 x + 2,x) = -39x - 19
Also, it can find the GCD, the coefficients and degree of polynomials
GCD = 1, coeff= {8,-13,-32,36}, and deg = 3
- to get
for example a point A with
x-coordinate: if(x(A)>3,3,if(x(A)<-3,-3,if( x(A)<0,round(x(A)),x(A))))
y-coordinate: if(x(A)<0,0.5,if(y(A)>2,2,if(y(A)<0,0,y(A))))
- DONE (zz_1) ComplexPower[Point,Integer]
- DONE animation option "run once"
- translations for sin, cos, tan etc
- Point[{1,2}], Point[{1,2,3}], Point[{{1,2},{3,4}}]
- Sum[ {{1,0,0},{0,1,1}}]
- DONE cot(x), csc(x), sec(x), cosec(x), coth(x) etc
- use thumbnail.png for applet splashscreen
- DONE rotate text
- DONE use Simplify/TrigSimpCombine to implement == for functions?
- vertical text for axis label
- For presentations: Change default point size / line thickness / ...
depending on font size
- DONE Length[ <text> ], First/Last/Take[text ]
- DONE ctrl-h hide selected objects (care needed - generates a vk_backspace event)
- ctrl-g "Create list" - add all selected objects to list
- DONE use thumbnail as preview in file->open
- DONE allow union with just one argument eg Union[{1,1,1,2}] = {1,2}, or Unique[]
- Union[arg1, arg2, ..] and Union[{{..}, {..}}]
- Intersection[arg1, arg2, ..] and Intersection[{{..}, {..}}]
- DONE Shuffle[]
- DONE trace to spreadsheet for polar points (a;b)
- DONE caption instead of definition for tooltip
- in XML replace ≠ with != etc?
- DMSText[] command -> Degrees Minutes Seconds use getPlain("ADegreesBMinutesCSeconds",degrees,minutes,seconds);
- Inverse[ <function> ] command (use MathPiper?) (too hard??)
- preserve what the user types eg FractionText[4/3], then double-click now gives FractionText[1.333333333333334]
- multilingual texts (change when you change language)
- DONE Transpose[] for non-square matrices
- DONE CountIf[ x == "A", {"A","A","B"} ] [LetterToUnicode[list] instead?]
- DONE multiple views, and option to display certain objects in just one view
- change size of arrows for v. short vectors?
- DONE complex conjugate A* or conjugate()?
- DONE How do we do this? GeoUndefined class? Imagine that in setting up a Geogebra demonstration you could reserve a block of blank (but alive!) cells and link them to a list and a graphic object (e.g. a scatterplot). As a student enters data in the cells the graphic is updated. When a cell is made blank again the graphic does not disappear, you do not need to undo, you just type in a new value.
- DONE background color of cells
- line thickness of cells
- make Polygon/PolyLine antialised curves for points close together
http://www.geogebra.org/forum/viewtopic.php?f=13&t=5764
- DONE A command, which return coefficients of a object (as displayed in the algebra window) could be usefull.
eg : for the parabole c:y=2.5 x2 + 3 x + 5 :
ParametersOf[c] could return : list1={"Parabole", 2.5, 3,5} or {2.5, 3,5}.
- DONE Update "condition to show object" when pasting in spreadsheet
- option for displaying points coordinates in FractionText mode.
- DONE allow %v in caption - replace with value, %n for name
- use MathPiper to check equality of piecewise defined functions when these work:
Verify(if(x<0) (-x) else (x), if(x>=0) x else (-x)) gives False
Simplify( (if(x<0) (1-x) else (x)) - (if(x<0)(-x+1) else (x)) ) doesn't give 0
- DONE PolyLine[<list of points>]
command that creates a GeneralPath between the points and draws the
GeneralPath using Drawable. drawWithValueStrokePure()
- DONE option to not display the negative x or y axis or maybe an option of where to start them
- every 5th/10th grid line bold(er) UI?
- DONE option for export worksheet:
Instead of:
<param name="filename" value="x.ggb">
We could have:
<param name="included" value="loooooooooong string with for example
b64-coded x.ggb">
http://iharder.sourceforge.net/current/java/base64/
- Problem: When the browser leaves the page and come back again, the
worksheet is loaded from scratch, the work done on the last visit has
gone. (We know this would probably happen, but a lot of people
expect to be just like it was when they left it.)
An idea is to use the new JarManager system and the download folder
(Docs & Settings/.../Temp/geogebra/... ) and simply let
applet.stop() save and cache the present state of the worksheet.ggb,
and the applet.init()/start() to check if a cached version is there,
and load it if it is. if we save the ggb file into the temp folder
somewhere, we should save the original construction file too, so we'd
have two files "mycons.ggb" and "mycons_localstatus.ggb" This will
allow us to find out if the "mycons.ggb" construction file on the
server changes later (you want to be able to fix problems in a
construction that you post online). In this case, the local
construction file "mycons_localstatus.ggb" would need to be deleted
and recreated.
To check if "mycons.ggb" has changed on the server, we might be able
to simply compare the time stamps.
- Tool "create list of objects", works like best fit line tool (eg create list of points to use with CorrelationCoefficient[] )
- dynamic preview of LaTeX
- Shade[f, a, b] Like integral, but doesn't calculate the area
- We should however look into the big file issue. The problem really is
that getXML() creates a huge String in memory (which is probably even
duplicated in size by some buffers or writers during saving). Please
put on our TODO list to replace all
public String getXML()
methods with something like
public void writeXML(OutputStreamWriter osw)
- DONE arcsinh arccosh arctanh don't have derivatives
- update Complex.java library to latest version and add sin() cos() tan() etc for complex. Also add arg() and conjugate for real & complex
- DONE Polygon[list]
- DONE maybe improve behaviour of Custom Tool which has a number as first input (click in Graphics View -> create slider, or pop up dialog to input number)
- DONE It would be nice to have a command that converts a list of two elements to a point.
- DONE Similarly it would be nice to convert a 2 by n matrix into a set of n points.
- Tool to convert points (objects?) to list by dragging a rectangle (adapt Best Fit Line tool)
- DONE Edit -> Invert selection
- commands FitLineMedian[], FirLineForced[]
http://www.amstat.org/publications/jse/v14n2/morrell.html Appendix A
The least squares line forced through the origin is very simple:
Y = bX where b = (sum xy) / (sum x2)
To force a least squares line through some given y-intercept C, you transform the data (x,y) to (x, y-C), find the slope b by the rule above and return the line y = bX + C.
Accessibility
Commands that delete themselves (already have Delete[ ]):
Copy[]
DONE CopyFreeObject[] same as click/F4/Enter but also copies visual style
DONE SetColor[] with SetColor[A,"red"], SetColor[A,0,1,1] too :)
DONE SetFixed[]
DONE SetVisible[]
DONE Rename[]
DONE ShowLayer[]
DONE HideLayer[]
DONE FillColumn[1,list1]
DONE FillRow[1,list1]
FillRow[1,function,start,end,(step)]
DONE SetCoords[Point,x,y]
- DONE tab to select next GeoElement
- Menu button to open menu
- shift-tab (?) to naviagte round different panes
- fix F8 (&F6) and cursor keys to move dividers
- DONE Create New Tool could inherit the dynamic color specification of the original object.
For example, I have a slider for a number b, and a tool that makes a horizontal segment of length b (to the left if b is negative). The color of the segment should be red if b is negative, and blue otherwise. I am intending for students to use this to learn certain algebraic concepts. They will use the tool to make a sequence of segments, which should come out the correct color.
*. Also, the tool could automatically use the slider for the length of the segment, and not require entering the name of the slider every time. Geometer's Sketchpad allows you to do something like this---automatically use certain input objects.
- DONE edit -> show/hide ctrl-h
- DONE edit -> hide/show labels ctrl-shift-h
- allow angles larger than 2 Pi
- intersect conics and functions
- rewrite intersection to cope with:
L={x2,x3,exp(x),ln(x)}
h(x)=Element[L,n]
B=Intersect[f,h]
- for zoom in and out tools, allow rectangle to be drawn on a drag (shift to allow non-aspect preserving)
- complex matrices
- DONE http://commons.apache.org/math/ tDistribution, InversetDistribution, ChiSquare and InverseChiSquare
- DONE button to generate a JavaScript event, edit code (like a text object), code saved out in dynamic worksheet
[can we use the JavaScript plugin to run it in Application mode?]
- option to display ln as log
- DONE f(x)=(x-2)(x-3)
Factors[f] would then return a list {x-2, x-3}
Dynamic worksheet wishlist
- Have 2 layout options so that the worksheet fits better on one screen:
- 'portrait' (text above and below the applet) and
- 'landscape' (text above and to the right / left of the applet)
- Export option to automatically upload to the wiki and embed applet into a Wiki page
- formatting of text possible online
- layout changes possible online
- This would make it easier for 'usual' teachers to make their worksheets available online without having to deal with uploading files and creating links on webpages
- DONE Option to export this:
- DONE Google Site gadget
Arpad's idea:
Exact, symbolic calculations instead of the numeric ones which are based on point coordinates. So we might want to use segment lengths like sqrt(2), which are computed from knowledge like the length proportions of a 30-60-90 triangle. The steps of these calculations might be visualized by the construction step mechanism. For this, we might want to tell which information is relevant for an exercise (the length of a segment) and which is only because of GeoGebra (the exact coordinates of a point), and make symbolic calculations only from the data which is relevant. I may think more about this if you think I should.
