Release Change Summary
This page provides a summary of the webcompmath releases.
New Parser Programs: Added NumDerivParser for numerical derivatives, NumIntParser for numerical integrals, NumMinMaxParser for numerical min/max on an interval, and DerivParser for symbolic derivative. Added new copyEntireExpression, copyWithSubstitution, and copyEntireWithSubstitution methods to ExpressionProgram. In SummationParser, changed the Cmd class constructor to save a reference to the parent so that it can ask it for its name when building a string description
RiemannSumRects: fixed to handle case where lower limit is greater than upper limit; fixed rounding error that sometimes caused the rightmost rectangle to be infinitely tall; added support for lower function, to allow area between curves; fixed bug in searchMax, it recursively called searchMin, should be calling searchMax; added support for separate positive and negative area colors; fixed bugs in color handling for trapezoids; added inverse support; fixed bugs in trapezoid crossover handling; fixed bug in handling NaN, now if a top or bottom is Nan, rectangle is suppressed; fixed one pixel overlap in leftendpoint on increasing functions; added POLAR support
RiemannSums applet: added support for integration limits and lower function; added UseLimits, IntegrationLimits, LowerFunction, and UseLower params; rewrote the example parsing code, updated it to support the new params
WCMRiemannSliceBean, RiemannSlice: new class for showing one slice of a Riemann sum
WCMRiemannArcLengthBean , RiemannArcLength: new classes to show Riemann approximation of an arc
AppletUtilities: added getParameter-related static methods
WCMAxisTickBean: unclamped the DrawString, so the tick label can go off screen
WCMExamplesBean: added support for DOUBLE_ARRAY
LaunchButtonApplet: removed restriction on max frame size; added ButtonFontSize param, this code also fixes problem on Macs where the button text takes on the default size from the applet
GenericGraphApplet: added ButtonFontSize param, this code also fixes problem on Macs where the button text takes on the default size from the applet
Graph1D: added inverse support; added better setter/getters for dashed
Sync problems with tied components: in some cases when a Tieable is tied to a VariableInput, the Tieable gets extraneous sync() calls. The code was changed so that no setVal occurs if the old value equals the new value. Changes made to Animator, MouseTracker, VariableJSlider, VariableSlider, and VariableInput. VariableInput also modified to try to reduce frequency of extraneous syncs.
WCMSequenceBean, Sequence: new classes to support graphing of a sequence as a set of dots
VariableJSlider: added Math.round to setVal, which fixes a bug that caused the slider not to move sometimes when using the cursor keys to step it
Linewidth of 0: fixed comments in several Drawable classes to note that setting line width to 0 draws the thinnest possible line; old comment said that no line was drawn. Also updated some classes to allow 0 as a line width. In EpsilonDelta applet, added code to set the line color on deltaBox and epsilonBox to the same as the fill color so the line isn’t drawn.
WCMExamplesBean: fixed handling of "" example strings. Now it skips if empty, but processes the string if not empty, even if just whitespace (but the whitespace is trimmed before use).
- Added the WCMExamplesBean. This enables you to build configurable applets in a general way.
- Added support for detecting a Presentation applet param to the configurable applets. This param causes the applets to display large fonts, thick lines, and larger points, suitable for projection on a screen.
- Added the Continuity configurable applet
- Changed the VariableSliders to a VariableJSliders in SimpleGraph, EpsilonDelta, Derivatives
- Added XInputName applet param to SimpleGraph
- Added UseSaveButton, OptionalFunctions, and RationalExponents params to GenericGraphApplet
- Put in a hack into GenericGraphApplet so that Java 6 correctly displays the LimitControlPanel
- Changed how LINE_CENTERED objects are drawn in DrawGeometric. The old code caused the line to be slightly slanted. Added ARROW_ABSOLUTE and ARROW_RELATIVE.
- Added set/getLineWidth to RiemannSumRects. Also fixed this class to properly restore line stroke after drawing.
- Added set/getLineWidth set/getCrossLineWidth, and set/getCrossHalfSize to ScatterPlot
- Fixed WcmAxes to save and restore line stroke; added more space between y labels and y axis when labels are on the right side; fixed bug that cause the y zero label to be on the wrong side of the axis
- Added set/getLineWidth and set/getLineStyle to TableFunctionGraph
- Added WCMAxisTickBean to draw an individual labelled tick mark on an axis
- Added doLoadFirstExample to GenericGraphApplet so that subclasses can call this and make sure that the first example gets loaded.
- Changed func and xInput to protected in SimpleGraph
- Added ability to manually draw points and asymptotes via param examples to EpsilonDelta, Continuity, Derivatives, SecantTangent
- Added set/getIntervals to VariableJSlider; reworked how labels are drawn (was fairly broken before); changed minimum number of intervals from 10 to 2; changed setIntervals to not compute a new slider value and instead reuse the old one; added set/getIntervalsValue to allow the intervals to be set using a Value object
- Added a k slider to Derivatives as an option (UseParameter param); made sure first example gets loaded
- Added redefine() to WCMExpressionFunctionBean so that when taking the derivative you can cause the derivative to get updated if you change the function programmatically (e.g., with a WCMExamplesBean)
- Added the FunctionCombination configurable applet
- Made sure FunctionComposition loads first example; also fixed problem with example menus not properly working
- Changed the default background for LaunchButtonApplet to be the default Swing background; added hack to make sure that the LimitControlPanel gets shown in applets launched by this button when using Java 6
- Added option to SecantTangent to hide the tangent line; also made sure first example gets loaded
- Added setLimitsAndRestoreBuffer to CoordinateRect; added set/getSyncX and set/getSyncY to allow selective tieing of each axis independently
- Added constructors from base class to WCMParserBean
- Fixed WCMExpressionFunctionBean so that it computes chain derivatives properly
- Changed button names to protected in LimitControlPanel so subclasses can access them.
- Added getters for the TMax, TMin, TIntervals variables in WCMLimitControlPanelBean so that they can be used as Value objects (e.g., setting parameters for a VariableJSlider); Added removeSetLimitsButton() so that you can handcode button additions in pairs for two column mode. Added saveParams() and restoreParams() to save/restore tmin, tmax,tintervals; Added actionPerformed() to catch Save, Restore, and Set Limits buttons and do the proper stuff with the tmin/tmax/tintervals; added constructor to set field names; added get/setParamName
- Added get/setTValue, get/setXFunction, get/setYFunction to WCMTangentLineBean to support tangent to parametric curves
- Added WCMPolarCurveBean
- Improved the graphing of linear functions by correcting a round off problem in the CoordinateRect coordinate-to-pixel conversion methods. There are also new methods to return float pixel positions, for use with Java 2D graphics.
- ParametricCurve, Graph1D, and WCMIntegralCurveBean now use Java 2D shapes to graph the curves, improving the appearance of dashed curves in some cases.
- VectorField now supports coodinate-based grid spacing, as well as pixel-based spacing.
- Drawables that previously didn't use Java 2D antialiasing now do.
- WCMPanelBean now guarantees a compute call on the controller whenever constructed (previously, this only happened when it was loaded into a class loader, causing the graph not to get initialized in certain cases).
- DisplayCanvas now implements the Printable interface.
- Fixed 1180239: LimitControlPanel resize no longer displays extra "xmin" label
- Fixed 1179328: generic applets now properly handle foreground color changes parameters
- Added a copy button object, to copy a display canvas to the system clipboard
- Extensive enhancements to WcmAxes
- DrawGrid enhanced with absolute spacing, line width, dots vs. cross hatch
- Added RationalLabels class (used by WcmAxes)
- DrawGeometric enhanced with rays, dashed lines
- RiemannSumrects enhanced with xmin, xmax limits
- VectorField enhanced with line width, bug fix in error handling
- LimitControlPanel now fires a property change event when the user edits the bounds
- Added WCMIntegralCurveBean to graph solution of differential equations
- Added the basic applets, used in the tutorial, to the source package
- Added support for JavaBeans (experimental)
- JCMError, JCMPanel and Axes now WcmError, WcmPanel, and WcmAxes
- Added support for FontSize parameter to generic applets
- Added support for line widths and stroke types on graphs and axes
- Added support for tick mark control on VariableJSliders
- Added PointAlt, PointLineWidth, ShowSlider, and SliderStep parameters to FunctionComposition applet
- Added SliderStep parameter to SimpleGraph and Derivatives applets
- Added experimental ImplicitFunction class
- Added MeanValue applet
- Added optional support for hyperbolic functions in the parser
- Added support for detection/handling of rational exponents in parser and ExpressionInput
- Added LaunchButtonApplet, which provides the same functionality as the launch button feature of GenericGraphApplet. Set its "Class" property to the name of an applet and it will open that applet in a new window when clicked.
- Fixed a bug such that when the coordinateRect is zoomed, the VariableJSlider position didn't change (now it does).
- Fixed bug in VectorField.setYFunction; it checked that arity == 1, now checks that arity == 2
- Fixed bug 1195981: In VariableSlider and VariableJSlider, tied VariableInputs sometimes updated themselves erroneously.
- JCM reworked to use Swing instead of AWT
- JCMPanel and JCMError renamed to WcmPanel and WcmError
- new package structure: net.sourceforge.webcompmath.*
- configurable applets now reside in a package: net.sourceforge.webcompmath.applets
- more formal open source license, but essentially the same idea as JCM
- fixes for bugs 1178014, 1170575, 1170561 (all of which were due to the Swing changes)