KmPlot Development
The Development Version of KmPlot
There has been a lot of development of KmPlot in the KDE 4 branch. Here you can find screenshots of what's being worked on and an up-to-date list of big changes.
A parametric and an implicit curve.
|
Zooming in on two close roots of a polynomial.
|
An implicit function shown with a variety of parameter values.
|
A first order explicit differential equation and its tangent field.
|
KmPlot can now step through values of a function's parameter.
|
The new dialog for editing expressions.
|
User Interface
- All the plot dialogs have been merged, with their functionality now placed in a dock widget in the main view.
- KmPlot now has a specialized widget for editing equations that does syntax highlighting and shows errors in red. The widget also comes with a dialog available via the click of a button for advanced editing of equations, with buttons to insert special symbols and predefined functions.
- Diagrams now take up all of the available space, instead of being confined to a square.
- The fonts and lines in the diagram now remain fixed in size when KmPlot is resized.
- Make the precision (i.e. number of decimal places) of the current mouse position in the statusbar dependent on the zoom, so that moving the mouse by one pixel is guaranteed to change the coordinate-string displayed by at least one digit.
- Merged many other dialogs together - mostly into the Configure KmPlot dialog.
- Simplified the Scaling and Coordinate System dialogs.
Plots
- Implicit plots (e.g. x^2 + y^2 = 9).
- Explicit differential equations (e.g. f''(x) = -f).
- Can now trace integrals, polar and parametric plots (i.e. all plots are now traceable).
- Use antialiasing and floating-point precision for drawing.
- Can use a variety of different styles (e.g. solid, dots, dashes, etc).
- The selection of 10 default plot colors are now sexy, contrast well with the default white background, and are easily distinguishable.
- A group of plots for different parameter values can now have an associated color-gradient, so that each curve in the group has a subtly different color.
- Can show the osculating circle, normal and tangent while tracing.
- Added option to show the extrema (minimum and maximum) points on a curve.
- Can draw the function name on the plots.
New Functions
- Legendre polynomials (up to n = 6).
- Heaviside step function H(x) (evaluates to 1 for x > 0, 0 for x < 0 and ½ for x = 0).
- Floor - round down to nearest integer.
- Ceil - round up to nearest integer.
- Round - round to nearest integer.
- Min - minimum of a set of numbers.
- Max - maximum of a set of numbers.
- Mod - the modulus (euclidean length) of a set of numbers.
Internals
- Use better method for numerical integration (fourth-order Runge-Kutta).
- Use Newton's method for root-finding.
- The names of constants can be reasonably arbitrary (not confined to one letter long, can have other characters, e.g. Greek letters).
- When tracing plots, linearly interpolate closest click position (before, was taking the vertical intersection of the click position with the plot).
- When drawing plots, use intelligent and adaptive stepping value for x or t, ensuring that each increment gives a line a few pixels long. This ensures that drawing unimportant bits is fast, and drawing stuff at high-zoom is smooth.
Convenience
- Now have a Parameter Animator tool that steps controls the value of a parameter of a function and steps through it in time.
- Many new symbols (e.g. ±, √, ∞, π, ×, ÷, ¼, ½, ¾, ², ³, etc) are now recognized.
- Functions can now be copied via drag-and-drop between KmPlot instances.
- Undo/redo system.
- More image export options.
Zooming
- Unified "Zoom Rectangular" and "Zoom in" under one operation "Zoom In".
- Added zoom-out-rectangular equivalent for "Zoom Out".
- Animate zooming operation as a visual aid to how the function is transformed.
- Removed "Center Point" operation and replaced with translating the view via dragging (Google maps style).
- Made the zooming operations single shot and added the actions to the toolbar.
- Show crosshairs when selecting the initial point of a zoom.
- Use a semi-transparent rectangle for selecting the zoom region.