Version: $Id: Changelog,v 1.18 2002/04/20 19:24:46 aditus Exp $

Changelog for JpGraph
=====================


[20-April-2002] JpGraph 1.6.2
=============================
Changes/Additions:
* [me] Slightly adjusted LinearTicks::Stroke() to better handle som
  potential rounding problems.

* [Thomas George] Added LinePlot::AddArea() which makes it possible
  to just fill part of a line plot (a part that is specified with a 
  start and end x-point)

* [Thomas George] Fixed bug with missing coordinate when using filled
  line plot with step style.

* [me] Added client side image maps to scatter and line plots

* [me] Fixed problem with warning "IMG_ARC_CIRCLE not defined" when 
  running on GD 1.x
  
* [me] Removed test with is_null() in jpgraph.php to make JpGraph 1.6.2 
  work with older versions of PHP (especially 4.02).
  

[07-April-2002] JpGraph 1.6.1
=============================
Changes/Additions:
* [me] Modified autoscaling for the case where all values are equal to
  make the min/max difference larger.

* [me] Fixed bug in 3D pies for certain data values

* [me] Fixed bug with images maps assuming that slices 
  where order anti-clockwise and the new pie algorithm did them
  clockwise.

* [me] Added subtitle to Pie and Pie3D graphs.

[02-April-2002] JpGraph 1.6
===========================
Changes/Additions:
* [me] Changed license to QPL

* [me] Completely rewritten algorithm for 3D pies which gives MUCH better result. Will
  also allow exploded 3D pies.

* [D. Reinbach] Better handling of filling line plot with negative
  values

* [me] Added LinePlot::StrokeDataValue() for easy handling of plotting
  data point values.
* [Gyozo Papp,me] Real locales for Gantt chart. The locales now take a
  proper locale string (e.g. "en_UK", or "sv_SE") to get the real
  locales from the system. Note that this breaks the sc compatibility 

* [me] Removed jpgraph_dir.php and moved the directory settings back in
  jpgraph.php due to problems in PHP with nested includes and search
  paths.

* [me] Added possibility to show values for scatter plot by
  refactoring value support back into jpgraph.php Plot() class. This
  makes it easy for all subclasses that uses Plot() to add display
  value support.

* [me] Added possibility to use X-coordinates in Error plots

* [me] Fixed missing LogScale::SetXLabelOffset(). This made it
  impossible to use linear plots with a log x-scale !!!  

* [me] Fixed bug  so possible Y2 plots are also taken into account when auto
  scaling the X-axis. This could otherwise couse plots outside the
  scale when using Y and Y2 plots where Y2 plots had more data values.
  
* [me] **********!!SC BREAK!!**************
  Aligned the way values are displayed on Bar graphs with line and
  scatter plots. The values to be displayed for these plots are now
  all accessed through the "value" property of the plot. For example
  $myBarPlot->value->Show();
  instead of the previous
  $myBarPlot->ShowValue();

* [me] **********!!SC BREAK!!**************
  Aligned the way values are displayed in Pie plots with line and
  bar plots. You know use the "value" property in exactly the same way
  as in bars and lines. 

* [me] **********!!SC BREAK!!**************
  Aligned the way values are displayed in 3D Pie plots with line and
  bar plots. You know use the "value" property in exactly the same way
  as in bars and lines. 

* [me] Added possibility to display individual values in an
  accumulated bar graph in addition to the overall accumulated
  value. This is done as usual through setting the individual bars
  value property to what you want (size, color, format and so on)

* [me] Added another default error handler which is image based to
  make it easier to see error messages when images are included
  in a page. This is now the default error handler.

* [me] Added possibility to specify the location of the X-Axis
  to the top of the graph by using xaxis->SetPos("max") also
  added new Example topxaxisex1.php to demonstrate this feature.

* [me] Added more 3D pie examples to demonstrate new functionlity.

[01-March-2002] JpGraph 1.5.3
=============================
Changes/Additions:
* [me] Make it possible to use JpGraph 1.5.3 with GD 1.8.x. In 1.5.2 I was 
  using a function only available in GD 2.x.
 

[29-Feb-2002] JpGraph 1.5.2
===========================

Bug fixes:
----------
* [me] Released the correct 3D pie file (By mistake I mixed the stable version with
  the  development branch for 2.0 in the 1.5.1 release just to prove
  that I'm still human :-)

* [me] Fixed out of bounds error when using shadows for bar graphs
  with 0 value

* [me] Fixed typo in DisplayValue::SetFormat()

* [me] Fixed potential array out of bounds error in Plot::Min() and
  Plot::Max()

* [me] Fixed misplaced ')' in string construction in call to
  JpGraph error.

Changes/Additions:
------------------
* [me] Added possibility to use "auto" file name when stroking
  directly to a file.	 


* [me] Added tag 'title' to the image maps to make for better
  compatibility with Mozilla. 

* [me] Moved class LineProprty to jpgraph.php from jpgraph_gantt.php
  since it can be used in other modules as well.

* [me]Added Text::GetTextHeight() which differs from
  Text::GetFontHeight() in that it takes the total text height
  (possible multiple lines) into account.

* [me] Added Image::FilledArc()

* [me] Added RotImage::SetTranslation()
       Added RotImage::Circle()
       Added RotImage::FilledCircle()
       Added RotImage::Arc()
       Added RotImage::FilledArc()


[11-Feb-2002] JpGraph 1.5.1
===========================
* [me] No longer treat a not set $y[0] value as an explicit error. Instead
  silently set $y[0] to 0.

* [me] Changed "include" to "require" in jpgraph.php when including 
  jpgraph_dir.php. This seems to fix the strange problem whereby
  the constants defined in jpgraph_dir.php didn't have a correct
  value in jpgraph.php.

* [me] Fixed problem with correctly drawing of bars when all bars
  are negative. (Previously the baseline wasn't correctly handled
  since min/max values needs to be mirrored for negative bars)
  Note: Funny this problem has gone unnoticed so long.

* [me] Fixed problem with doing gradient fill for negative bars.

* [me] Fixed problem with autoscaling when there is a very small
  difference (< 0.00001) between min and max and when both min and max are
  negative. This might happen if you have a single negative value.

* [me] Added labels for line graph. Each point my now also optionally
  display it's value on a line graph. Value are controlled trough
  class DisplayValue and it's instance in LinePlot.
  LinePlot->value->Show(), 
  LinePlot->value->SetColor(),	
  LinePlot->value->SetFont(), 
  LinePlot->value->SetMargin(),
  LinePlot->value->SetFormat(),
 
 
[27-Jan-2002] JpGraph 1.5
=========================
* [me] Fixed misnamed xmin variable in Min() for acc bars

* [me] Added possibility to specify paragraph alignment for
  multi line text, i.e the text can be left,right or center aligned
  within it's bounded box. The lignment is set by the new method
  Text::ParagraphAlign()

* [me] Changed position specification for text so that if the position 
  is specified in range [0,1] it is interpreted as fraction of image
  height width and otherwise as absolute pixels.

* [me] Added possibility to specify pie size (radius) both as a fraction and
  absolute size in pixels.

* [me] Added possibility to tweak color specification by adding a 
  saturation percentage, i.e you can specify color as "red:0.65"
  which means 65% of the red value (in other words 35% darker).

* [me] Tweaked the estimation of number of segments to approximate an 
  arc in Image::CakeSlice.

[17-Jan-2002] JpGraph 1.5beta2a
===============================
* [me] Fixed typo in Max() calculation for accumulated bar graphs 
  which caused it to return wrong value.

* [me] For Min() calculation for acc bars graphs take the user
  specified ymin into account.

* [Peter Svistunov, me] Added Cyrillic unicode support through the
  global define LANGUAGE_CYRILLIC. This is also the start of a 
  generic support for Unicode languages through the LanguageConv
  class.


[15-Jan-2002] JpGraph 1.5beta2
==============================
* [me] Rewrite of the pie-chart drawing algorithm. This version
  is slightly slower but avoids using GD floodfill function. This
  fixes problems with small slices not being filled completely. As
  an added bonus it is now possible to explode (and specify the
  explode radius) for all slices. It is also possible to draw the
  pie without having internal borders between the slices as well
  as turning on/off the border surronding the pie.

* [me] Added graphic primitive CakeSlice() to the Image class.
  Used to simplify pie-drawing.

* [me] Added more generic error handling. It is now possible to
  install your own error object with 
  JpGraphError::Install(<name of error object>)
  The default error handler will just abort execution. 

* [me] Security whole in utility script for displaying source
  and image in frames fixed.

* [Cedric Scheyder] Actively ignore hours in calculating Max/Min
  values for dates in Gantt charts to avoid problems in autoscaling
  when users specify start and end dates down to hours.

* [Rick Widmer] Fixed problem in calculating min/max value when first 
  Y-value was non-numeric.
  
* [me] Fixed calculation of width and height of text with multiple lines.
  Multiple text lines (text blocks) should now be almost fully supported.


[16-Dec-2001] JpGraph 1.5-BETA
==============================
* Take "\n" into (some) account when calculating string height and width
  Text output now supports multiple lines better.

* [me] Removed reference to global PHP_SELF, use HTTP_SERVER_VARS array
  instead. This makes JpGraph working with 'register_globals' turned
  off.

* [me] Added some rudimentary check that GD is enabled before trying to
  run JpGraph.

* [me] Fixed silly cut-and-paste bug in AccBarPlot::Max() which could 
  cause to small max values to be returned

* [me] Added property 'title' to PlotMark. The title is printed in the center
  of the plotmark.

* [DanNY (dulcis28@hotmail.com)] Added JpGraph Logo. (Thanks!)

* [me] Added jplintphp.php, jpgendoc.php, jplintdriver.php which are
  parsing, documentation and pretty printing tools I use to help
  me to documentation and find unused code.
  Tthat does some simple static analysis on PHP for silly mistakes
  that I do (Like using instance variables without qualifying them 
  with "$this->" ) The tool also warns about unused instance variables.
  Since it also parses the classes and methods I use it to generate
  the documentation skeleton for the reference section.

* [me] Added Gantt chart funcionality, jpgraph_gantt.php . See
  Gantt tutorial for help on usage.

* [me] Added new Gantt tutorial

* [me] Added BKIMG_CENTER, possibility to center the background image.

* [me] Timeout function now also aplies when you generate an image
  off-line, i.e if the imagefile exist and is within the time window
  now file will be written.
  
* [Rasmus Lerdorf] Added patch to make background images work with GD 2.x
  N.B GD 2.01 has bugs in handling TTF font with truecolor images which
  are fixed in 2.02 but that has (of this writing) still not been officially
  released. GD 2.x support in JpGraph is still to be considered experimental.

* [me] Fixed some potential rounding errors in 2D Pie plot which in some
  circumstances might have caused a flood fill to escape. Also added check
  to better handle very small slices so we don't try to do a fill
  on the border edge.

* [me] Slightly changed the internal design for band patterns. 
  They are now created by a factory class instead. This makes it much easier 
  to re-use and have maximum code reuse.

* [me] Factored out some functionlity from Graph::Stroke() to make it possible
  to re-use some code in GanttGraph::Stroke()

* [me] One more instance when PHP surprised me by thinking 0 == "-" aarrghhh
  Now I think (knock on wood) all problems with data points=0 should be solved

* [me] Added '&' to the assignment in Graph::Add() This now lets you specify changes
  for lines, plots even after they been added to a Graph.  But I'm not sure if this
  is really such a good ide because you will have problem if you write code
  like
  
  	for( .... ) {
  		$myplot = new LinePlot(.....);
  		$graph->Add($myplot);
  	}
  	
  	Since this will not work the way you think (why?) Because the same
  	reference to the variable $myplot will be used for all additions and
  	hence the graph will only have multiple instances of the last added 
  	LinePlot(). Have to think of this and what is the best way. (I will 
  	probably never get used to PHP references....)


[11-Nov-2001] JpGraph 1.4
==========================
Bug Fixes:
-------------------------------------------------------------------------------------
* [me] Enabled E_NOTICE warnings in my PHP installation and found a couple of 
  glitches (harmeless out-of-bound in two loops) which is now corrected. 
* [me] Fixed problem in line plots where y-value==0 wasn't drawn. (Once again 
  bitten by the fact that in PHP the following is true: ""==0)
* [me] Fixed color specification for bars when initialized as an array of colors
* [me] Fixed color of bars using shadow which was advertedly set to shadow color
* [me] Fixing incorrect color specification for legends using bars with color arrays
* [me] Add check for sum=0 in pie plots to avoid divide by 0 problem
* [me] Changed the stroke orderd for FilledRectangle() so that the shadow doesn't
  overwrite a line with weight > 1
* [me] Fixed incorrect calculation of font height for titles which cause the 
       subtitle to be to close to the title.

Additions:
-------------------------------------------------------------------------------------
* [me] Added depth parameter (DEPTH_FRONT, DEPTH_BACK) for gridlines
       Graph::SetGridDepth()

* [me] Added possibility to add static horizontal and vertical band with a 
       pattern in the plot area. Graph::AddBand() Supports solid, diagonal,
       stright line, 3D-plane crosses (both diagonal/vertical) patterns.
       Graph::AddBand()
       
* [me] Added possibility to have static lines in the plot. This is now implemented
       with new class PlotLine and two new functions Graph::AddLine(), 
       
* [me] Added symbolic constants to specify background image types
       BGIMG_COPY, BGIMG_FILLPLOT, BGIMG_FILLFRAME

* [me] Added extended label formatting through either
   	Axis::SetLabelFormatString()		C-style formatting string
   	or
   	Axis::SetLabelFormatCallback()	A callback function that are given the value to be displayed
   												and should manipulate the value as it likes
   												
 		The use of the old style digit precision variable will be deprecated from next version.

* [me] Added error check if supplied Y-data has unspecified value at index 0 to avoid
  out of bounds error when corrupted data is sent in to JpGraph.
  
* [me] Added possibility to specify image depth for gridlines. You can now specify
  Graph::SetGridDepth() as DEPTH_FRONT or DEPTH_BACK. Depending on if you want
  the gridlines at the back of in front of your plots.

* [me] Added possibility to specify Cache file name as "auto". In this case the
  image file name will have the same name as the scriupt that generates the 
  image with the extension of the automtically generated graphic format.
  NOTE: You will get the wrong extension using this feature at the same
  time as specifying a different graphic format thne the automatically choosen 
  one.

* [me] Added some more advanced examples for impuls drawings impulsex3.php and 
  impulsex4.php

* [me] The values on top of bars can now be at an angle and the horisontal
  position now account for if a shadow is present.
  
* [me] Added filename to Graph::Stroke() which makes it easy to output an image
       directly to a file _without_ streaming it back to the browser. Usefull for
       batch processing
       
* [me] Added new tutorial for bar graphs

* [me] New scale type "int". This gives a normal linear scale but restricts
  ticks (and labels) to integer values. Can be used for both X and Y scales.

* [me] Added subtitle to graph

* [me] Added possibility to specify an array of X-coordinates with bar plots to 
  position individual bars on the X-scale. Makes it much easier to combine
  bar plots with other types of plots, (line, scatter etc)
  
* [me] Extended utility adjimage.php to allow it to manipulate color saturation.

* [me] Added Image::AdjSat() to allow manipulation of the color
  saturation in the image. This also makes it very easy to change the image
  to greyscale (just set saturation=-1). 
  Extended Graph::AdjImage() and Graph::AdjBackgroundImage() 
  to include new parameter for saturation value.
  
* [me] Added BarPlot::SetAlign() which makes it possible to align
  bars relative the tickmark for linear and int scale
  
* [me] Added possibility to absolutely set the width of bars. This will 
  override the automatically decided with based on the scale and tick distance
  
Changes:
-------------------------------------------------------------------------------------
* [me] Legend color for scatter plots now becomes the fill color of the mark

* [me] Impulsplots now anchors at Y-value = 0 if the y-axis contains both negative
  and positive values. Otherwise it will go to the lowest value on the Y-axis.

* [me] Bar shadows is now connected to bars to make for a stronger 3D effect.

* [me] Removed all deprecated references and usage of FONT0, FONT1, FONT2. Note
  You can no longer use these. Instead use FF_FONT0, FF_FONT1, FF_FONT2 etc
  
* [me] Text scale now starts default labelling at 0

* [me] All plots internally adjusted to start at default X-coordinate 0 to harmonize better 
  with X-scale.

* [me] Graph->Stroke() now just returns instead of exit()

* [me] Removed flag argument for BarPlot::SetShadow()

* [me] Bar plots are know by default filled with lightblue
  unless otherwise specified.
  
* [me] Changed the way bars are positioned for linear and integer
  scale for maximum flexibility when mixing barplot with other
  plots.
  
* [me] The ALT strings for all image maps now uses printf() syntax to display
  the actual value. If you have used this feature you must update your
  ALT strings, for example "val=%v" must become "val=%d" or whatever format 
  you choose. 
  
* [me] Changed the formatting of bar graphs by changing the framework
  so that labels on the x-axis using a text scale is now independent 
  on the tick marks. 
  This makes it possible to have the labels centered under each bar but have 
  the tickmarks between the bars as most other commercial graph packages
  format these typw of graphs. Introduced Axis::SetTextLabelsInterval()
  Effects jpgraph.php, jpgraph_log.php and jpgraph_bar.php
  
* [me] Renamed Axis::SetTextTicks() to Axis::SetTextTicksInterval() to make the name
  more descriptive. The old name is deprecated from this version on but will still
  work until 2.0 to keep compatibility.
  
* [me] Cleaned up implementation of pie3d so it now inherits from pie to avoid
  a lot of duplicated code and easier maintainance.  (A good example of the real
  life OO programming where you might not see the similarities between two classes
  until you fully implement them.) File size of jpgraph_pie3d.php has shrunk by 
  roughly 40%
  
[23-Sep-2001] JpGraph 1.3.1
===========================
Additions:
* [Michael Anthon] Added client side image maps to 3D pie plots
* [me] Added possibility to better control the labeling of pie graphs with an optional
  label formatting string PiePlot::SetLabelFormat(), PiePlot::SetLabelType()
  This also makes it possible to have labels with the absolute value and not only the
  percentage. (same with pie3d)
* [me] Added formatting capabilities for legends on pie and pie3d graphs. Can have the value
  automtically included (Se Examples/pieex6.php)
* [me] Added some more examples, negbarvalueex1.php, scatterlinkex2.php, pie3d_csimex1.php
  pieex6.php
  

Known bugs and omissions:
- Client side image maps does not currently handle exploded pie graphs (just
  normal pie graphs.

Bug fixes:
* [me] Fixed problem with positioning the displayed values for negative bars
* [me] Fixed shadow for negative bars
* [me] Fixed problem in Plot::Min(), PlotMax::Max() whereby zeros where not counted 
  towards minimum since in PHP 0=="". This could sometimes cause strange autoscaling. 
* [Vitaly E. Ashmarin] Wrong arguments to imagejpeg() for combination of specified 
  image quality and filename = ""
* [John Milne] BarPlot::SetFillColor() fixed glitch in loop variable


[13-Sep-2001] JpGraph 1.3
=========================
Note: I have to the best of my memory tried to give credit where 
credit is due. Howevever, since ver 1.2.2 I have received over 2000 mail about
JpGraph with Questions/Suggestions/Improvments (and a few bug fixes) etc and 
I might have missed some in the process of going through these mails. The
fault is completely my own and if you recognize some idea I have implemented
something which you think you should have credit for please drop me a note and 
I will adjust the add you to the change notes.

Known bugs and omissions:
- The automatic value on bar graphs does not work well with
  negative bar graphs. (Quite easy to fix though..)
- Client side image maps does not currently handle exploded pie graphs (just
  normal pie graphs.

IMPORTANT NOTICE:
* SC (SOURCE COMPATIBILITY) BREAK !: If you want to rotate the image the parameter
  is no longer supplied directly in the call to Graph() but rather as a method
  call Graph::SetAngle(). I decided to make this SC break since I judged it more
  natural to supply the timeout value just efter the specified cache-file name
  in the Graph() call. Hopefully this will not hit to many people since my hunch is
  that few people uses the rotate function and it's very easy to fix those script
  that does so.

Bug Fixes:
* [michael@anthon.net] Corrected behviour of accumulated bar graph so it now
  diffrentiate between the accumulated positive and negative values.
  
* [marko@fly.srk.fer.hr] Fixed Max() calculations for accumulated bar graphs
  where my original code was a little bit sloppy. (I simply took the max for
  each plot and added those and this might be more then the real maximum.)
  
* [m.purgar@extracom.de] Spotting an incorrect "jpg" in the image where it should
  have been "jpeg"
  
* [adam.blomberg@euroseek.net,patrik.johansson@euroseek.net] 3D-Pie filling 
  problem for small slices due to the discrapency between GD arc() and the 
  JpGraphs purely mathematical definition of an ellipse.
  
* [delorme.maxime@free.fr] 2D-Pie Floodfill might "escape" for very small values of slices.

* [et.al] Improved handling of 0:s vs "" values. This was necessary since PHP treats
  0 as "" the same in a number of situations and JpGraph needs to diffrentiate these
  two cases. This caused 0 data values to be treated as null values and not be inluded 
  in (for example) autoscaling consideration.

Additions:
* [me] Added new global constant USE_CACHE which makes it possible to disable
  writing to the cache even if a filename is supplied in th Graph::Graph() method.

* [me] Added LinePlot::SetStyle() to make it possible to make dashed, dotted etc
  lineplots. (See example1.2). Also adjusted legend to display the same style in
  the legend.
  
* [michael@anthon.net, me] Added client side image maps for all types of bars
  and 2D pies with possibility to have the actual value shown in an ALT-tag.
  
* [me] Added drop shadow (or rather "right-up" shadow) to bar graphs BarPlot::SetShadow()

* [me] Added possibility to have the actual value of bar graphs displayed at top of graphs
  via BarPlot::ShowValue(), BarPlot::SetValueFont(), SetValueMargin(), SetValueColor()
  The format of the value is specified according to standard C printf() string formatting
  i.e. "val=%d" will for example print a string "val=13" 
  
* [me] Added possibility to adjust brightness and contrast for background image
  via the Graph::AdjBackgroundImage() method.
  
* [me] Added possibility to adjust brightness and contrast in the finished image
  via the Image::AdjBrightContrast() method.
  
* [me] Added possibility to just generate an image to a file and not stream
  it directly back to the browser. Added parameter $aInline to Graph::Graph()
  
* [me] Added timout for cache, i.e if the image in the cache is older then 
  the specified number of minutes (=0 never re-generate, -1 always regenerate) 
  then re-generate the image. Just specify a timeout in minutes with a call:
  $mygraph->cache->SetTimeOut(10)
  
* [me] Added possibility to use logarithmic scale for SpiderPlots. This also resulted
  in a little bit of internal cleanup in jpgraph_spider.php.
  
* [me] Added SetWeight() method to class Ticks() for control of line thickness for ticks

* [me] Added SetMarkColor method to class TIcks() which lets you specify different
  colors for major and minor tick marks.
  
* [me] Added method RelTranslate() to LinearScale() and LogScale() classes which is used
  in Spider class. This makes a world to screen relative translation.
  
* [me] Added possibility to link data points in a scatter plot with lines
  by the addition of method ScatterPlot::SetLinkPoints()
  
* [me,john.milne@one2one.co.uk] Added possibility to have individual colors of
  bars in bar graphs by having BarPlot::SetColor() accept an array as argument.
  
* [sergio@alsernet.es] Make it possibly to have x-tick labels to consist of two lines
  by inserting a "\n" separator in the text.
  
* [CK1@wwwtech.de] Adding JPEG quality setting. This is done by adding 
  a method SetQuality() to the img class. After creating a graph this can then
  be used as $mygraph->img->SetQuality($some_qvalue).
  Currently this only affects JPEG images.
  
* [delorme.maxime@free.fr] Possibility to use different grace value for top and bottom
  of graph and not just a single value as in 1.2.2

Changes:
* [me] Changed group/permission handling for created files to better adjust itself
  to the way the local Apache user is setup
  
* [me] The default for spider graphs is now NOT to be filled

* [me] Allow all datapoints to be 0 which will set the scale to [0,1]

* [me] Removed the need for a DIR_BASE variable

  
[29-Apr-2001] JpGraph 1.2.2
===========================
Bug fixes:
* Removed reference to non-existent property 'bypass' in class RotImg
* Changed to allow the last X-gridline to be drawn (comparison with limit was '<'
  where it should have been '<=' )

Additions:
* Added possibility to use background image
* Added possibility to use approximate color through the "USE_APPROX_COLORS"
  constant
* Handling of diffrent form of "null values" for line graphs. An y-value
  can now be "" or "-". In the first case (a true null value) this mark
  will cause a disruption in the line graph to indicate that the value
  is undefined. In the other case specifying the value as "-" will cause
  the value to be ignored bu the line will still be drawn between the
  previous data point and the following. Neither of these cases will have
  any mark drawn.
* Added a fatal warning when no more colors can be allocated for the chosen 
  graphic format.

Changes:
* "Downgraded" anti-aliasing algorithm to use fewer color levels
  in the transition to avoid using up to much of the color palette
* Cleaned up some of the code to not rely on PHP default initialization
  of variables. This will help those who have got warnings when they
  have had all error reporting enabled in php.ini (E_ALL)
* Legends now show the plot mark (if defined) instead of just a square of
  the right color.

Acknowledgements:
* Thanks to kevin@pricetrak.com  for suggesting the treatment of 
  pure NULL values.
* Thanks to luca_n@hotmail.com for getting my attention to the warnings
  caused by relying on PHP default initialization of variables.  
  (My installation had E_NOTICE disabled, hence I never got those warning myself.)


[29-Mar-2001] JpGraph 1.2.1
===========================
Bug fixes:
* When min and max values for autoscaling was equal this resulted in trying to calculate
  log10(0) = INF resulting in an infinite loop in LinearTicks::Stroke()
* When autoscaling was used with only one data point it tried to calculate log10(0) = INF
  resulting in an infinite loop
* fopen("xxx","r") should be fopen("xxx","rb") causes problems on windows system with IIS5
* JPG streaming function was incorrectly called "imagejpg" should be "imagejpeg" (see the difference?)
* Non existent color name in jpgraph_pie.php
* Removed all deprecated forced references in function calls
* The width of the surrunding box was not calculated correctly for internal bold font

Additions:
* Color themes for pie graphs
* Beta release of 3D pie graphs
* Added DIR_BASE as constant to make it possible to use one system wide copy
of JpGraph. NOTE: This must be set to the directory where JpGraph is installed.

Acknowledgements:
* (ck1@wwwtech.de) (and a russian guy which I unfortunately lost the name of) 
  for reporting the imagejpg spelling mistake
* (ales.gregor@zps.skoda-auto.cz) for finding the binary file problem with IIS
* Several people have reported the problem with autoscaling when all Y-values 
  were equal. Thanks to you all for acting as my privet QA team!


[18-Mar-2001] JpGraph 1.2
=========================
Additions:
----------
* Added "BRAND_TIMING" which give possibility to brand each image generated with
the time (in ms) it took to generate the image.
* Added Gradient Fill for bar graphs, The gradient fill allows 6 different styles.
* Added Anti-aliasing for lines. Note drawing anti-aliased lines is 7-10 times 
slower then "normal" lines!
* Added full TTF support. this means an internal SC break (Source Code Break). Normal JpGraph
script should not be affected if you have used only publized "public" frunctions. The SC break is
to allow uniform treatment of both internal fonts and TTF. This has been achieved by changing
the parameter list for SetFont(). However, backward compatibility with the old naming conventions
for internal fonts are kepot, e.g. SetFont(FONT1_BOLD) still works but is deprecated and will not
be valid from 2.0 
* Added possibility to control font for title of Spider Axis through the added
property 'title' to the axis in the spider graph.
* Added 'SetColor()' in pie graphs as a shortcut to SetMarginColor() to set the background color
* Added possibility to draw X-axis labels at arbitrary angle. Internal fonts only supports
horizontal and verical.
* Added possibility to draw boxed text at an angle
* Added possibility to have different colors for axis and the labels on the axis by the addition 
of extra parameter to SetColor()
* Added 350 more named colors.
* Added canvas "fake" graph to make it easy to draw arbitrary graphics
* Added SetCenter() method for line graphs.
* Added SetGrace() for autoscaling purposes.

Changes:
--------
* If you use a text-scale for X-axis the default labels now start at 1 instead of 0 since this is 
actually a counting scale and it makes more sense to start at 1.
* Improved handling of bar-graphs with negative values.
* Updated existing examples to use new format for SetFont()
* Made it a critical error to specify a non existant font
* Changed so that orientation for Text() is now given as an angle, i.e. SetOrientation(45). Old
style of using SetOrientation("v") (for vertical) is deprecated. But will work until V2

Bug fixes:
----------
* Improved handling of computational effects on small values in scaling where a rounding error might cause the
last label not to be drawn.
* The position for the title of X-axis could in some cases be slightly different in first
and second pass due to incorrectly determination of the X-axis labels font height.
* Specifying an minimum Y-value for Y-axis on bar graphs could on rare occasions (combination 
of scale values and specified density of autoscaling ticks) cause a gap between the bottom of 
each bar and the X-axis.


[18-Feb-2001] JpGraph 1.1
=========================
Additions/Changes:
------------------
* Added Spider graphs 
* Added Pie graph
* Added Scatter (and impuls) graphs
* Added possibility to rotate plots an arbitrary angle
* Added step style rendering to lineplot
* Added Breseham circle drawing which gives better visual apperance
  then the built in Arc() in GD (on the expense of CPU and performance)
* Improved Polygon and Rectangle drawing so that it will use line weight settings
* Improved the visual appearance of lines with weight>1 by correctly calculating 
  (angle wise) the endpoints and using a filled polygon to draw the line. 
  Unfortunately it would require some real improvements in the GD library to really improve
  the visual appeance of lines with weight>1. This is as good as it gets without writing
  a low level pixe-by-pixel correct plotting. With my method you get it to look visually
  aestethic right in 90% of the cases with just 10% work. 
* Added MARK_FILLEDCIRCLE as new mark type. Note that due too the poor performance of the
  basic Arc() image primitive in PHP4 the circles isn't perfect circles, they tend to be a
  a little bit flat at multiples on PI/2.
* Added the possibility to have a separate fill- and line- color for marks
* Moved Class PlotMark from jpgraph_line.php to base in jpgraph.php since this class is also used
  with scatter plots. 
* Made it a critical error to try to use Text X-scale with specified X-data points. 
  Previously no warning was given for this non-defined state. (Using text scale with specified
  points really doesn't make sense.)
* Made it a critical error to use unknown color rather than silently replacing it with black.
* Updated documentation to reflect added capability


Bug fixes:
----------
* Fixed minor bug in Line() in which it didn't update the last point for use with
  subsequent LineTo() calls (forgotten $this->) 
* Eliminated assumptions in DashedLine() that x1<=x2 and y1<=y2 eliminates the 
  potential pixel overshoot.  
* Fixed a serious bug in Line plot when used with a specified X-scale (not the normal default)
  since the X-coordinate wasn't read from the correct vector!
* Fixed a serious bug whe using as specified X-scale since the maximum value for a plot 
  wasn't correctly passed to the autoscaling. 
  Note: The reason that these two bugs haven't been discovered previously is the fact 
  that my test specs didn't include test cases to do with specified X-axis (I almost never ever use that). 
  This has now been corrected and added to the test suit. 
* Fixed so the possible box around the plot area correctly honours the weight specified for it.


[05-Feb-2001] JpGraph 1.0
=========================
* Initial release.

[EOF]
