Subversion Repositories Applications.papyrus

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2150 mathias 1
30 May 2003 JpGraph 1.12.2
2
==========================
3
* [me & A. Tang] Added support for Chinese font and character handling.
4
  This requires you to install the "simhei.ttf" Chinese font.
5
 
6
* [J Sweat] Fix bug [#124] Make step line style ignore NULL values in data
7
 
8
* [J Sweat] Fix bug [#123] Divide by zero for line length of zero for dashed lines
9
 
10
* [me] Fix bug [#109]. Problem with pie color when a supplied color array
11
  contains more colors than data. For anti-aliased images that meant that
12
  the last n colors was used and not the first n colors.
13
 
14
* [me] For plotmarks that use the ALT string the wrong value was in due
15
  to the recent addition of both Y and X value to control the plot callback.
16
  This has now been fixed so that it will work as before and that previous
17
  code that assumes one parameter in their ALT srting will see the Y-value at
18
  the plotmar. New is also that the X-value is given as a second
19
  parameter. This means that the ALT string can display both the Y and X value
20
  for a specific point.
21
 
22
* [me] Make it possible to disable individual plot legends through the method
23
  Plot::HideLegend()
24
 
25
* [me] Fixed problem with SetTextTickInterval() together with grouped bars
26
  (bug #116)
27
 
28
* [me] Fixed a problem with shadows on accumulated bar plots (bug #111)
29
 
30
* [me] Fixed Legend::SetMarkAbsSize()
31
 
32
* [me] Add error check for the case that the server (Windows)
33
  doesn't support SystemRoot and TEMP server variables.
34
 
35
* [me] Fix short-open-tags bug that made it's way into 1.12.1 (bug #121)
36
 
37
* [me] Make sure we only pass integers into GD when positioning texts.
38
 
39
* [me] Always treat "" (empty string) as NULL for bar plots
40
 
41
* [me] Allow links from vertical position 0 on gantt charts
42
 
43
 
44
12 Apr 2003 JpGraph 1.12.1
45
==========================
46
 
47
* [me] Added Legend::SetLineSpacing() to control the vertical line
48
  distcance (in pixels) between legend texts.
49
 
50
* [me] Compensate for bug in imagecopyresampled() in GD 2.01.
51
  This made clipping unusable with GD 2.01
52
 
53
* [me] Added LinePlot::SetFillFromYMin() to make the fill start from
54
  the bottom of a Y-scale with negative values rather than the 0-value
55
  which is now the case.
56
 
57
* [me] Fix a problem with legend box layout in the case of TTF fonts
58
  and different lengths of individual texts. The layout engine now
59
  work out each column individually. This will also give the legend
60
  box the minimum possible size.
61
 
62
* [me] Compensate for possible bug in strtok() when parsing color
63
  specification as a string with adjustment factors.
64
 
65
 
66
06 Apr 2003 JpGraph 1.12
67
========================
68
* [me] Added possibility to specify the position of the legend box
69
  with absolute pixels coordinates not only as fractinos as before.
70
 
71
* [me] Improved legend layout. It is now possible to specify
72
  the number of columns in the legend box. The preferred way of
73
  specifyin the layout is now Legend::SetColumns(). The oild
74
  way with SetLayout() is still available for backwards compatibility
75
  reasons. The old vertical layout corresponds to a 1 column
76
  layout (SetColumns(1) which is also the default).
77
 
78
* [me] Added possibility to specify text string position
79
  using scale coordinates onto the plot by adding
80
  Text::SetScalePos(). The autoscaling has been modifyied to
81
  be aware of the text scale positions.
82
 
83
* [me] Added builtin images for plotmarks. This also meant a
84
   refactoring exercise for the PlotMark class and it has now been
85
   split in sevaral files.
86
 
87
* [me] Added footer capability to Radar, Pie and Gantt charts
88
 
89
* [me] Improved upon rounding problem with GD2 and pie slices
90
       (defect #88)
91
 
92
* [me] Take shadow color as specified with Graph::SetShadow() into account.
93
 
94
* [me] Don't rotate the footer if the graph is rotated.
95
 
96
* [me] Added Axis::HideLabels()
97
 
98
* [me] Adjusted of the automatic margin calculation so that it is
99
  aware of when the x-axis have been hidden.
100
 
101
* [me] Added PlotMark::SetCallbackYX(), This allows for the
102
  specification of a callback function which is given both X and Y
103
  coordinates. Also extended the returned values from the callback so
104
  that image in a marker can be dynamically modified both size and
105
  actual image file used. This will enable the use of advanced
106
  "push-pin" graphs. For example adding markers to a background image
107
  map of certain size and type.
108
 
109
  For backwards compatibility any callback specified with
110
  PlotMark::SetCallback() will not be given the extra parameter. So
111
  old code does not need to be changed.
112
 
113
* [me] Fixed handling of PHP array URL parameters with CSIM. [Bug #82]
114
 
115
* [me] Added Legend::SetFrameWeight() which adjusts the frame around
116
  the legend. Legend::SetLineWeight() now works as documented and sets
117
  the line weight for the markers instead.
118
 
119
* [me] Autoscaling will now also take the value of added lines into account.
120
 
121
* [me] Fixed problem with horizontal legend box becomming too small
122
  for many legends.
123
 
124
* [me] Radar plot. SetColor() always sets a fill color. Fixed (Bug #83)
125
 
126
* [me] Added SetWidth() for tab-title. The tab can now easily extend
127
  over the entire plot width. Added SetPos() as synonym in tab title
128
  for SetTabAlign().
129
 
130
* [me] Gradient bar plots now show a gradient mark in the legend
131
 
132
* [me] PiePlot3D::SetSliceColors() now more correctly specifies the
133
  color anti-clockwise. The same order that slices are drawn.
134
 
135
* [me] Pie position can now also be specified in absolute pixels
136
  in PiePlot::SetCenter()
137
 
138
* [me] Added Bevel frame for entire graph
139
 
140
* [me] Added possibility for some more advanced Graph title
141
  formatting through the Graph::SetTitleBackground() method.
142
 
143
* [me] Type safe comparison in auto-detection of GD version
144
 
145
* [me] Added Graph::SetCanvasColor() to specify the background color
146
  the canvas is initialized with.
147
 
148
* [me] Fine tuned label positiong for pie labels and made 3D pies
149
  take the specified labels into account.
150
 
151
* [me] Added Anti-aliasing to Pie charts. Looks good but it really
152
  slows down the pie generation. Enable by acalling
153
  PieGraph::SetAntiAliasing()
154
 
155
* [me] Ignore NULL values in Stock and bar plots
156
 
157
* [me] Some minor internal adjustments for rounding in log scales.
158
 
159
 
160
2 Feb 2003 JpGraph 1.11
161
=======================
162
* [Martijn] Compensate for GD 2.x bug in filledarc() which doesn't
163
  like negative angles.
164
 
165
* [me] Added Graph::SetBackgroundGradient() . This allows
166
  a gradient to be used as a background. The gradient can either fill
167
  the whole frame, only the margin or just the plot area. See the
168
  class reference or the manual for details regarding this method.
169
 
170
* [me] Modified adjustment factor for colors so that it now
171
  is linear between dark and light, i.e. a factor of 1 is the original
172
  color, a factor of 0 is black and a factor of 2 is white.
173
 
174
* [me] Added two new gradient style GRAD_LEFT_REFLECTION and
175
  GRAD_RIGHT_REFLECTION
176
 
177
* [me] Some fine tuning of text layout in legend box
178
 
179
* [me] Radar plots can now have a background image and multiple
180
  titles (sub-title, and subsub title).
181
  Added RadarGraph::SetPos() as alias for
182
  RadarGraph::SetCenter().
183
 
184
* [me] Fixed a small pre-read-loop error which could casue the
185
  X-gridline to be outside the right edge of the plotarea if the
186
  X-scale was indented.
187
 
188
* [me] Added possibility to use (scaled) images as markers by
189
  introductin the new mark type MARK_IMG.
190
 
191
* [me] Added tab titles for graphs. See class reference and Example
192
  tabtitleex1.php.
193
 
194
* [me] Added filled grids by adding method Grid::SetFill(). This new
195
  feature is illustrated in example filledgridex1.php. Documented in
196
  section 6.2.11 in the manual.
197
 
198
* [me] Improved automatic margins so they adapt to one or more title
199
  lines automatically.
200
 
201
* [me] Fixed a class hierachy bug. RotImage::DashedLine() should not be
202
  implemented but rather rely on the Image::DashedLine() since the
203
  rotation will happen in the RotImage::Line() which gets called in
204
  Image::DashedLine() by any istance of RotImage().
205
  You could see the ffect of this by trying to create a 90 degrees
206
  rotated graph with dashed gridlines, they would appear not to be
207
  rotated at all where in fact they were rotated twice.
208
 
209
* [me] Added automatic default margins when using Set90AndMargin()
210
 
211
* [me] Added Box plots which is a variant of Stock charts with the
212
  possibility to add the median as a horizontal line in the box.
213
 
214
* [me] Added Stock charts, (aka candle-bars) as new class StockPlot().
215
  added example stockplotex1.php in the Example directory.
216
 
217
* [me] Added two new axis styles AXSTYLE_YBOXOUT, AXSTYLE_BOXIN which
218
  suplicates the Y-axis on both sides but not the X-axis.
219
 
220
* [me] Set90AndMargin() now also adjusts the label alignment on the
221
  axis to suit the rotation.
222
 
223
* [me] Added class LineErrorPlot which alolows a line plot to
224
  have error bars (+/- delta error).
225
 
226
* [me] Added Ticks::SetSize()
227
 
228
* [me] Modified size for plot mark circle so it will have the
229
  specified width as radius and not as diameter.
230
 
231
* [me] Added Ticks::SetSize() to be able to set the absolute size
232
  in pixels of the tick marks.
233
 
234
* [me] Default directories for Fonts and Cache now gets set
235
  automatically.
236
 
237
 
238
13-Jan 2003 JpGraph 1.10.1
239
==========================
240
 
241
* [me] Fix bug in Band pattern Left diagonal and Right Diagonal where
242
  the drawing was incorrect when width < height
243
 
244
* [me] Take the border on/off switch into account for line AddArea()
245
 
246
* [me] Added color parameter to Axis::SetTickLabels() to make it
247
  possible to set individual colors on labels.
248
 
249
* [me] Fixed PiePlot::SetSliceColor() so that colors are now specified
250
  in the same order as slices.
251
 
252
* [me] Gantt, Radar and Canvas graph now also considers the special file
253
  _IMG_HANDLER (returns the actual image handler and doesn't stream
254
  picture back)
255
 
256
* [Christian Reiser] Pie graphs can now also return the IMG_HANDLER
257
 
258
* [Richard Black] Removed case sensitivity for extension of
259
  background images. Added support for handling file names with
260
  multiple '.' characters in the path for background images.
261
 
262
* [me] Added error check for imagettfbbox() since it can give
263
  a file not found error even though both file_exists() and
264
  is_readable() reports that the file exists and is readable
265
  in the case when PHP basedir restriction is in place.
266
 
267
* [me] Corrected CSIM handling in Gantt for non-file based
268
  Gantt charts.
269
 
270
* [me] Note to self: 1.10p
271
 
272
* [me] Gracefully handle the abnormal case where no valid data points
273
  is included in the Y-data array when creating a line plot.
274
 
275
16-Dec 2002 JpGraph 1.10
276
========================
277
* [me] Added GanttGraph::CreateSimple() whihc is a utility method to
278
  help create simple gantt charts with a minimum of code.
279
 
280
* [me] Added new plot (FieldPlot) type which handles field plots. This is
281
  basically a variant of scatter plots where each point is represented
282
  as an arrow which a specific direction (0-360 degrees).
283
 
284
* [me] Added Graph::SetY2OrderBack() to control of plots on Y2 should
285
  be under (in z-order) te plots on Y. By default they are on top.
286
 
287
* [me] Avoided a potential 1-pixel off rounding problem if a user
288
  supplies a non integer canvas width and height in the Graph() call.
289
 
290
* [me] Added two new formats for week scale in Gantt
291
  charts. WEEKSTYLE_FIRSTDAYWNBR, WEEKSTYLE_FIRSTDAY2WNBR These
292
  formats adds the weeknumber as well to displaying the date of the
293
  start of the week. Also tweaked the auto-sizing of the Gantt charts
294
  to adjust for the size of the text in the week scale.
295
 
296
* [me] Fixed wrong define in jpgraph_gantt.php for WEEKSTYLE_DAY2
297
  (Bug #45)
298
 
299
* [me] Improvements on manual scaling. If a manual scale is specifed
300
  (in the Graph::SetScale()) you are now longer required to specify a
301
  major and minior tick interval (but of course you can still do it
302
  with a call to Ticks::Set() ).
303
  A suitable intervall will be automatically
304
  caclulated in the same way as for autoscaling. By default the exact
305
  limits for the scale as specified will be used. This means that
306
  depending on the scale and tick intervall chosen the max value of
307
  the scale may or may not fall on a major tick mark. If you want that
308
  behaviour you need to call Scale::SetAutoTicks(). By using this call
309
  you give the algorithm permission to slightly adjust the specified
310
  min and max values (if needed) so that they wil fall on a even
311
  major step.
312
 
313
* [me] Added error check if user tries to use SetTextLabelStart()
314
  with a logarithmic scale (where it is undefined).
315
 
316
* [me] Default marker for scatter plots are now a filled square
317
 
318
* [me] Adjusted the x-axis labelling for a 1-pixel off limit. Which
319
  sometimes (depending on the image size and scale) could cause a
320
  linear scale's last label not to be shown.
321
 
322
* [me] Fixed bug report #40
323
 
324
* [me] Fixed positioning of caption for full odometers. (Bug #34)
325
 
326
* [me] Fixed spelling mistake in jpgraph_odo.php which casued
327
  Odometer::SetLabelPos() to have no affect. (Bug #33)
328
 
329
* [me] Fixed an overzeoulous optimization which skipped both rotation
330
   and translation for angle=0. Addresses (Bug #36)
331
 
332
* [me] Colors can now include an alpha channel specification as well.
333
  The alpha channel is specified in the text string separated by a
334
  a '@' , for example "red@0.5". The alphachannel is specified as a
335
  fraction between 0.0 and 1.0.
336
 
337
* [me] Improved filled line plots so they now handle negative values
338
  in a more standard way.
339
 
340
* [me] Added automatic detection of what version of GD is installed.
341
 
342
* [me] Aligned the order of legends and slices for pie and 3D pies so
343
  that they now follow the more common order of clockwise slices with
344
  legends from top to bottom.
345
 
346
* [me] Changed call to deprecated function SetLinePos() to SetLineSide()
347
 
348
* [me] Added clipping to generated plots. This means that if you have
349
  plots (for example lines) which extends outside the scale range it
350
  will be clipped. This might come in handy in for example balloon
351
  plots. Clipping is enabled by default but can be controlled by a
352
  call to Graph::SetClipping()
353
 
354
* [me] Fixed a problem with circles and filled circles when they were
355
  rotated twice in a rotated graph. (Bugtraq #26)
356
 
357
* [me] Added Graph::Set90AndMargin() which helps for doing a 90
358
  degrees rotation and getting the margins right. (Otherwise you have
359
  to adjust them manually since height becomes width and width becomes
360
  height when you rotate 90 degrees)
361
  Changed the horizbar* examples to use the Set90AndMargin()
362
 
363
* [me] Changed the behaviour of plot marks in legends. The possible
364
  format callback is no longer called. Instead the plotmarks are
365
  set to a default size.
366
 
367
* [me] Added three more plotmarks MARK_LEFTTRIANGLE,
368
  MARK_RIGHTTRIANGLE, MARK_FLASH. These new types are primarily meant
369
  to be used with GanttCharts.
370
 
371
* [me] Added constrain lines to GanttCharts. It is now possible to
372
  illustrate start-end, start-start, end-start and end-end
373
  constrains. This is illustrated by adding lines with arrows,
374
  Use GanttPlotObject::SetConstrain()
375
 
376
* [me] Added Image map support for Gantt chart. Bar and titles can now
377
  have associated image map targets. Use GanttBar::SetCSIMTarget()
378
  GanttBar::SetCSIMAlt() and for titles use
379
  GanttBar::title::SetCSIMTarget() and  GanttBar::title::SetCSIMAlt()
380
 
381
* [me] Fix problem in Gantt graph whereby the progress bar indicator
382
  could extend over the end date if an explicit date scale was set.
383
 
384
* [me] By default logarithmic scale now print the labels as 10^3
385
  instead of 1000. You can change the behaviour with the new
386
  method for logarithmic ticks, SetLabelLogType().
387
  Also added the possibility to have a callback for log scales
388
 
389
* NOTE TO SELF 1.9p
390
 
391
* [me] Added the possibility to specify a value > 1 as the position
392
  for labels in PieGraph::SetLabel() to increase the margin between
393
  the label and the edge of the pie.
394
 
395
* [Olaf Kandel] Fixed subtle bug in the printing of the month scale for the
396
  case where the start and end month hjave the same number but
397
  are on different year. This would cause the width for the
398
  first month to be wrong.
399
 
400
 
401
Jpgraph 1.9.1
402
=============
403
* [me] Fixed defects #20 and #21 (spelling mistake and and one
404
overzelous last minute error check I added). I have to eat a lot
405
of humble pie over these ones. Sorry to all who have been affected.
406
What can I say? Human error........
407
 
408
JpGraph 1.9
409
===========
410
* [me] Changed the way TTF fonts are handled. The font files are no
411
  longer distributed with JpGraph due to potential copyright problem.
412
  This change also has the advantage that it is now very
413
  straigthforward to install new fonts whatever their naming
414
  conventions are.
415
 
416
  1. If you are running on a standard Windows system just point the
417
  TTF directory to your standard font directory and use the available
418
  fonts in windows.
419
 
420
  2. If you are on a Unix system you can download the MS Core TTF
421
  files from http://corefonts.sourceforge.net/. The old MS EULA allows
422
  distribution of the fonts in unaltered form (Win EXE) and this
423
  project exercises this right and provide tools to download and
424
  install the fonts on a UNIX system.
425
 
426
* [me] Renamed this release from 1.8.1 to 1.9 due to the big
427
  change in the handling of TTF fonts which breaks backward
428
  compatibility due to the copyright problem with TTF fonts.
429
 
430
* [me] Improved the TTF pargagraph layout engine for consistency
431
  in handling "\n\r" vs "\n". It is now always sufficient to
432
  use just "\n".
433
 
434
* [me] Adjusted the text positioning for StrokeBoxedText()
435
  to use the new GetBBoxHeigh() and GetBBoxWidth().
436
 
437
* [me] Added  Image::GetBBoxHeight(), Image::getBBoxWidth()
438
 
439
* [me] Once and for all fixed the handling of rotated TTF text by
440
  adding Image::GetBBoxTTF() which returns the bounding rectangle
441
  (which is not the same as the bounding box except for angle==0)
442
 
443
* [me] Added argument to Legend::SetColor() to make it possible
444
  to specify both frame and font color.
445
 
446
* [me] Cosmetic adjustment of markers in legend so that they are
447
  positioned exactly in the middle of the text string.
448
 
449
* [me] Corrected the positioning of TTF fonts when defining the
450
  hotspot as 'bottom'. It could be up to 4 pixel off when using
451
  texts that contained character that extended below the TTF
452
  baseline e.g. '('.
453
 
454
* [me] Added possibility to use a cache system with CSIM images
455
  as well. The cache system is used slightly, slightly different
456
  and require a call to the new method Graph::CheckCSIMCache()
457
  This is unfortunately unavoidable due to the nature of CSIM in
458
  HTML. The documentation is updated to deal with this. This also
459
  added two more defines CSIMCACHE_DIR and CSIMCACHE_HTTP_DIR
460
 
461
* [me] Added CSIM (Client Side Image Maps) to legends, added
462
  target and alt arguments to all Plot::SetLegend()
463
 
464
* [me] Added functionlity to pass on any URL arguments when using
465
  StrokeCSIM() (Bug: #006)
466
 
467
* [me] Fixed so that Gantt charts can again have just the width
468
  specified and have the height automtically sized. (This was a
469
  regression introduced in 1.8) (Bug #005)
470
 
471
* [me] Added error check for return value from imaagecolorsforindex()
472
  in Anti-aliased lines. In combination with GD2, no-true-color, a
473
  true color background (ala JPG) this can fail since it gets a color
474
  which doesn't exist (since it uses imagecolorat()).
475
 
476
* [me] Improved edges support in 3D Pies.
477
 
478
* [me] Changed Image::Polygon() so i now draws an open polygon and not
479
  a closed one.
480
 
481
* [me] Legends for scatter plots no displays the mark used for
482
  each scatter plot and not just a square with the correct
483
  color.
484
 
485
* [me] Fixed a small cosmetic problem in that horizontal legend
486
  box was sometimes not wide enough and made a small adjustment
487
  of the positioning of marks in the legend box for better
488
  apperance. (Bug #0017)
489
 
490
* [me] Improved manual by adding linked TOC.
491
 
492
* [me] Added Bezier curve to canvas Shape class. Added Bezier canvas
493
  example canvasbezierex1.php
494
 
495
* [me] Added Paragraph Alignment setting in Text::Align() as well to
496
  avoid seprate call to Text::SetParagraphAlign()
497
 
498
* [me] Added Image::SetExpired() . By default the image now sends
499
  back a couple of variants of "no-cache" headers to force the browser
500
  to reload.
501
 
502
* [me] Some serious speed improvments for 3D Pie plots. It can now be
503
  up to 6000% faster (yes that's right 6000%!). This is the way I had
504
  planned on doing it but for time reasons were pushed out of 1.8.
505
  I have completely changed the algorithm that handles the individual
506
  slices on the expense of a slightly more complicated implementation.
507
  This means that there is no performance difference between 2D and
508
  3D Pie Plots.
509
 
510
* [me] Fix bug for rotation of paragraphs (multi-line) texts.
511
  A limitation for now is that rotated pargraphs always gets
512
  paragraphs align "left". (Bug: #008)
513
 
514
* NOTE TO SELF: 1.8p
515
 
516
* [me] Fixed a typo that had the strange affect that paragraph strings
517
  which started with a number would have larger distance between the
518
  individual lines since that number would be interpretated as the
519
  angle for the text!
520
 
521
* [me] Fixed a problem with marks getting out of sync if NULL values
522
  are present in the line plot. (Bug #0018)
523
 
524
* [me] Scatterplot no skips NULL values instead of treating them
525
  as zero.
526
 
527
* [me] Added LinearScale::SetAutoMax() as complement to SetAutoMin()
528
 
529
* [me] Added LinearScale::SetAutoTicks() this makes it possible to
530
  manually set a scale but still have the tick marks automatically
531
  determined. By default this feature is off to keep old code
532
  behave exactly the same as before. If this is enabled any
533
  Ticks::Set() calls are ignored.
534
 
535
* [me] Added possibility to adjust the position of the displayed
536
  value for bars via the BarPlot::SetValuePos() method. Added new
537
  example example20.5 to demonstrate this.
538
 
539
* [me] Bugfix: Fixed color themes for 3D pie plot. The color array
540
  was not wrapped around in the case where more slices (data points)
541
  than colors is used. (Bug: #001)
542
 
543
* [me] Documentation is now 100% pure HTML and does not require
544
  any PHP. Previously a PHP script was used to generate the
545
  highlighted source used in the image/source frames. All this
546
  is now pre-generated in the docs.
547
 
548
* [me] Position the values in a scatter plot in the center of the
549
  plot mark by default (Setting align to 'center','center' and margin=0
550
 
551
* [me] Added LinePlot::SetBarCenter to make it possible to center the
552
  line on the bars when combining a plot with both bars and lines.
553
  The new example 'ceneterdlinebarex1.php' demonstrates this.
554
 
555
 
556
 
557
[19-Sep-2002] JpGraph 1.8
558
=========================
559
* [me] Added Text::SetPos() as alias for Text::Pos() to harmonize with
560
  other setting methods.
561
 
562
* [me] Made Graph::Add() polymorphic. You can now use Graph::Add() to
563
  add all plot objects and you don't longer have to use AddText(),
564
  AddLine(), AddBand() and so on.
565
 
566
* [me] Added PiePlot::SetLabelPos(), added some more Pie examples.
567
 
568
* [me] Improved the API for class Text by adding SetShadow() to make
569
  it more like the other objects. Extended Text::SetBox() with shadow
570
  width and corner radius.
571
 
572
* [me] Added the possibility for Text object to use the new rounded
573
  rectangles as the filled background.
574
 
575
* [me] Added possibility to add arbitrary labels inside the pie plot
576
 
577
* [me] Added special filename __IMG_HANDLER to make it possible to
578
  have Graph::Stroke() return the image handler instead of stroking
579
  the image to file (or stream it back).
580
 
581
* [me] Improve FilledCircle() to avoid moire-patterns in circle.
582
 
583
* [me] Added middle type pie plot
584
 
585
* [me] User specified values for the band position is truncated to the
586
  min  and max values of the axis.
587
 
588
* [me] Added possibility to use Text::SetMargin() for all the titles
589
  in a graph
590
 
591
* [me] Added SetSize() as synonym for SetWidth() for plot marks.
592
 
593
* [me] Updated some of the examples with more comments.
594
 
595
* [me] Fixed problem with with jpg background images wrongly being
596
  loaded with imagecreatefromjpg instad of imagecreatefromjpeg
597
 
598
* [me] Corrected the positioning of individual titles for 3D
599
  plots.
600
 
601
* [me] Added Text::SetMargin() to make it easy to have context
602
  sensitive margins.
603
 
604
* [me] Added capability to have background images on Pie and 3D
605
  Pie plots
606
 
607
* [me] Added method Axis::HideLine() which hides the axis line but
608
  nothing else.
609
 
610
* [me] Fixed bug in Stroke::Text() where negative coordinates
611
  wasn't properly handled. We must allow negative absolute
612
  coordinates since these might be rotated/translated into
613
  "real" screen coordinates. This fixes the bug, for example
614
  in bar_csimex1.php where the first value of the bar wasn't
615
  displayed.
616
 
617
* [me] More adjustment of how the rounding takes place with
618
  coordinates. This should now avoid all potential difference
619
  between different graphic objects.
620
 
621
* [me] When you use automatic labelling on text scale it now starts
622
  at 1 and not at 0. This makes more sense since most people (except
623
  mathematicians) start counting from 1.
624
 
625
* [me] Example directory:
626
       - Added more advanced canvas examples
627
       - Updated all CSIM examples
628
       - ~60 new example script which are used in the new documentation
629
 
630
* [me] Compensate for bug in imagettfbox() which return to small size for
631
  large fonts.
632
 
633
* [me] Added jpgraph_canvtools.php which contain some utility classes for
634
  use with canvas graphs.
635
 
636
* [me] DOCUMENTATION: The class reference is now included in the release.
637
 
638
* [me] DOCUMENTATION: Completely rewritten the original
639
  Word-introduction to JpGraph to pure HTML. This will be a living
640
  document that will be updated  as time moves on. This is currently
641
  considered "Beta" and more chapters need to be added but this is
642
  a good start!!
643
 
644
* [me] Added full support for multiline legends. (See for example
645
  nullvalueex01.php. Also improved the way lineplot with marks
646
  are illustrated in the legend by adding the line underneth the
647
  plotmark.
648
 
649
* [me] Added some utility classes to be able to draw DB schema for
650
  DDDA. This is tailored for my DB abstraction layer (jpdb.php)
651
  in DDDA but is generic enough to work in other circumstances as well.
652
  The classes can be found in utils/misc/imgdbschema.inc
653
  Please see (run) dbschema_ddda.php which shows how it looks
654
  in a real life example.
655
 
656
* [me] Tweaked the positioning of TTF fonts and how the width and
657
  height are determined. Making more carefull assumptions about
658
  how the baseline is handled for individual lines of text.
659
 
660
* [me] Added class RectangleText() which makes it easier to work
661
  with text inside a rectangle with rounded corner.
662
 
663
* [me] Added support for multi-line TTF paragraphs with paragraph
664
  formatting. This was previously only supported for the builtin
665
  fonts. All text object should now support fully formatted paragraphs
666
  of text.
667
 
668
* [me] Added Image::RoundedRectangle() and
669
  Image::FilledRoundedRectangle()
670
 
671
* [me] Added format callback to plot marks. This makes it
672
  possible to individually adjust the plot marks depending
673
  on it's specific data value. See balloonex1.php
674
 
675
* [me] Added some initial support for super script used for
676
  scientific numbering, i.e properly print for example 10^2
677
  where the 2 is in superscript. This is all handled by the
678
  new class SuperScriptText(). Not yet used in the actual
679
  labels drawing but will be added shortly.
680
 
681
* [me] Added a small tool mkgrad.php in the utils directory to
682
  make it a breeze to create gradient squares which may be
683
  used as background images.
684
 
685
* [me] Added footer class to graph. This makes it easy to have
686
  left,center and right footers in your graphs.
687
 
688
* [me] Added subsubtitle to graphs
689
 
690
* [me] Improved/Changed the way you work with CSIM. This new method
691
  makes it possible to generate CSIM without having to create an
692
  intermediate image on disk.
693
  Added Graph::StrokeCSIM(). Added new chapter in the docs on how to
694
  work with CSIM
695
 
696
* [me] Changed naming of Spider* to Radar* since SpiderGraph is a
697
  copyrighted name.
698
 
699
* [me] Modified the automatic suppression of the first value of the
700
  X-axis when the Y-axis have negative value so it don't happen
701
  in the case where the X-axis is positioned at the minimum of
702
  the Y-axis.
703
 
704
* [me] Fixed spelling error of BK* instead of the correct BG*
705
  for the default settings of background image style.
706
 
707
* [me] Some internal code changes to RGB() class to make it easier
708
  to use directly for external scripts.
709
 
710
* [me] Changed the behaviour of filled line plot so that they
711
  don't go down to 0 for null values in the plot but instead
712
  behaves like '-' for non-filed plots, just ignore them and
713
  connect the previous and next point instead.
714
 
715
* [me] Fixed problem in integer scaling where it certain scale
716
  combinations could generate floating point labels! Ooops..
717
  (Affects IntCalcTicks())
718
 
719
 
720
[5-July-2002] JpGraph 1.7
721
==========================
722
* [me] Removed the APACHE_CACHE_DIRECTORY define since it is
723
  not used.
724
 
725
* [me] Added Image map functionlity for rotated bar graphs,
726
  also added new example for this (bar_csimex3.php)
727
 
728
* [me] Made Ticks::SetPrecision() deprecated. Use SetFormatString()
729
  instead
730
 
731
* [me] Fixed problem with incorrect string being returned from
732
  ToCyrillic()
733
 
734
* [me] Allow Y2 axis to use "int" scale
735
 
736
* [me] Fixed problem with wrongly names framework function for
737
  patterns
738
 
739
* [me] Fixed small problems with margins being slightly off for
740
  roated images.
741
 
742
* [me] Changed name of PlotMark::SetMarkColor() to PlotMark::SetColor()
743
  for consistency
744
 
745
* [me] Added example with "hidden" Y-axis.
746
 
747
[17-June-2002] JpGraph 1.7-BETA
748
===============================
749
* [me] Added DisplayValue::SetFormatCallback() to make it possible to use
750
  a user specified formatting callback routine.
751
  (Note:: Yes, this is very nono-OO but the proper OO way, by forcing the
752
  user to define a subclass of the plot class where the formatting method
753
  is overridden will probably not fly with to many non-OO PHP peoples since
754
  a callback is conceptually simpler.)
755
 
756
* [me] Added DisplayValue::HideZero(). Makes it possible to hide zero values
757
  in labels, for example zero slices in pie's, (e.g. $pieplot->value->HideZero())
758
 
759
* [me] Added manual scaling to Gantt graphs, added example to illustrate
760
  this, fixscale_gantt.php
761
 
762
* [me] Adding image maps for Y2 scale as well.
763
 
764
* [me] Fixed a small bug which made it impossible to use BRAND_TIMING with
765
  Gantt charts. Enabling timestamping of graphs would give a "PlotArea to small"
766
  error.
767
 
768
* [me] Made a very small change to the AutoScaling algorithm to yield tighter
769
  boundaries, i.e with the existing algorithm, depending on rounding problems
770
  a plot which had a maximum value of, say 4, could get a autoscaling max
771
  value of 5. Not a big problem (or hardly a bug) but not what I wanted.
772
  All my 111 test cases works fine with the modification but I'm still
773
  not convinced that this (very minor) adjustment is 100% (I can distinctly
774
  remember that I had a good reason to do it the original way, I just can't
775
  remember what :-)
776
 
777
* [me] Graph titles may now have multiple rows. By default the lines will
778
  be centered, but this may of course be adjusted by a call to, for
779
  example, $graph->subtitle->ParagraphAlign('left');
780
 
781
* [me] Added class FuncGenerator() to make it easy to generate
782
  function plots (both normal and polar). To illustrate this I have
783
  added three new examples funcex1.php,funcex2.php,funcex3.php.
784
 
785
* [me] Added Axis::HideFirstLastLabel() to hide first and last label on
786
  axis. This is usefull if we have a box around the plot area and we don't
787
  want the labels to owerwrite the box (see funcex1.php)
788
 
789
* [me] Make sure GD2 variables is registred in $GLOABALS[]
790
 
791
* [me] Fixed bug in image maps for marks. Alt strings was incorrectly
792
  indexed so it was only using values 0,2,4.. instead of 0,1,2,...
793
 
794
* [me] Added Graph::SetAxisStyle(). This makes it easy to use
795
  a few number of preset axis setup. For example duplicating the axis
796
  as a border around the plot. Preset axis position availabel are
797
  AXSTYLE_SIMPLE, AXSTYLE_BOXIN, AXSTYLE_BOXOUT
798
 
799
* [me] Made Axis::SetTickLabelMargin() deprecated. Use
800
  Axis::SetLabelMargin() instead. Name change to make it more
801
  consistent with the other margin settings.
802
 
803
* [me] Made Ticks::SetSide() a synonym for Ticks::SetDirection()
804
  to make it consistent with side setting for labels and values.
805
 
806
* [me] Added Axis::HideZeroLabel() as a shortcut for
807
  axis->scale->ticks->SupressZeroLabel()
808
 
809
* [me] Internal code changed. Replace the use of FontProp in SpiderGraph
810
  with Text() and some additoinal code cleanup.
811
 
812
* [me] Adjusted Image::Arc() so that no negative angles are
813
  passed on to GD imagearc() since it barfs at negative angles.
814
 
815
* [me] Added PiePlot3D::SetHeight() which is used to specify the
816
  height in pixels of the 3D pies instead of using the default
817
  height.
818
 
819
* [me] Pie plots (both 2D and 3D) now displays the slice labels
820
  by default.
821
 
822
* [me] Added two more Examples. barintex1.php shows how to use
823
  integer scale and barscalecallbackex1.php shows how to use
824
  a callback function for formatting the scale.
825
 
826
* [me] Modified grace calculation for Integer scale to have higher
827
  sensitivity.
828
 
829
* [me] Restructured code so class DateLocale is now in jpgraph.php
830
  rather than in jpgraph_gantt.php. Also added $gDateLocale as a
831
  global instance of the class DateLocale
832
 
833
* [me] Modified integer autoscale to correctly handle very small values
834
  (needs special handling of max==1 to avoid fraction)
835
 
836
* [me] Changed the way min value is extracted when finding the baseline
837
  for bar plots. Now uses the function Scale::GetMinVal() instead of
838
  reading the value directly fomr the instance variable. This makes it
839
  work better with logscales so that the bar starts from the min value
840
  of the log scale. Also added check in bar PreStrokeAdjust() to see if
841
  we are using a log Y-scale to automatically adjust the Y-base.
842
 
843
* [me] Optimized Stroke() loop for LinePlot so calls to PlotMark::Stroke()
844
  will only be done if the marks are really to be shown.
845
 
846
* [me] Added Axis::SetLabelAlign().
847
 
848
* [me] Made some internal modifiaction on how Axis title gets aligned
849
  to make it possible to specify it manually without having it
850
  automtically set. This makes it possible to generate nice
851
  horizontal bar graphs.
852
 
853
* [me] Added three examples in the Example directory on how to make
854
  horizontal bar graphs.
855
 
856
* [me] Don't always set Y-axis position automtically
857
 
858
* [me] Add Text::SetAngle() as synonym for SetOrientation()
859
  Added SetLabelSide() as synonym for SetlabelPos()
860
 
861
* [me ]Make it possible to manually specify the alignment of the textstring
862
  for the title position. This makes title looks nicer with horizontal
863
  bar graphs.
864
 
865
* [me] Allow Y-axis labels to be at an angle
866
 
867
[14-May-2002] JpGraph 1.6.3
868
===========================
869
Changes/Additions:
870
* [me] Added functionality to make AccBarPlot::SetAbsWidth() work in
871
  jpgraph_bar.phps
872
 
873
* [me] LinePlot::SetColor() no longer sets the color of the plotmark.
874
  The problem that some people had was that if you set the mark color
875
  specifically first and then unsuspecting called SetColor() for the
876
  line the color for the plotmark circumference would also be set making
877
  it look like the PlotMark::SetColor() didn't work.
878
 
879
* [me] Improved the functionality of GanntGraph::SetDateRange() to make
880
  it possible to display a section of the graph.
881
  (In previous version it was a checked error if you tried to plot
882
  a graph where any activity bar was outside the specified area.
883
  This is now changed to only cap the bars to the area.
884
  This makes it more suitable to handle big gantt charts
885
  which now can be split into several images to show different
886
  parts of the projects)
887
 
888
* [me] Added GanttScale::SetWeekStart() to set the start of week to an
889
  arbitrary day. For example SetWeekStart(0) will make the weeks start
890
  on Sunday, SetWeekStart(1), Monday and so on.
891
 
892
* [me] Fixed a rounding error in Gantt chart that could cause the week
893
  start day to off by one.
894
 
895
* [me] Modified the Min() and Max() methods for AccLineBar's to avoid
896
  them overestimating the max value. (Basically now using the same
897
  methods as in AccBarPlot)
898
 
899
* [me] Added missing code to do percentage calculation for 3D Pies so
900
  they work the same way as the 2D Pies.
901
 
902
* [me] Added error check for the case where the image is so small that
903
  the available plot area becomes to small.
904
 
905
* [me] Compensate for a PHP bug (#12474) in strtotime() which can affect
906
  Gantt chart so that the same month name is shown twice.
907
  See http://bugs.php.net/bug.php?id=12474
908
 
909
* [me] Compensate for the documented shortcomming in my
910
  3D Pie algortitm whereby a small exploded slice close to 270 degrees
911
  get's slighthly nagged at tha base due to the fact that the z-order
912
  stroking algorithm is only perfect if the slices are not exploded.
913
 
914
 
915
[20-April-2002] JpGraph 1.6.2
916
=============================
917
Changes/Additions:
918
* [me] Slightly adjusted LinearTicks::Stroke() to better handle som
919
  potential rounding problems.
920
 
921
* [Thomas George] Added LinePlot::AddArea() which makes it possible
922
  to just fill part of a line plot (a part that is specified with a
923
  start and end x-point)
924
 
925
* [Thomas George] Fixed bug with missing coordinate when using filled
926
  line plot with step style.
927
 
928
* [me] Added client side image maps to scatter and line plots
929
 
930
* [me] Fixed problem with warning "IMG_ARC_CIRCLE not defined" when
931
  running on GD 1.x
932
 
933
* [me] Removed test with is_null() in jpgraph.php to make JpGraph 1.6.2
934
  work with older versions of PHP (especially 4.02).
935
 
936
 
937
[07-April-2002] JpGraph 1.6.1
938
=============================
939
Changes/Additions:
940
* [me] Modified autoscaling for the case where all values are equal to
941
  make the min/max difference larger.
942
 
943
* [me] Fixed bug in 3D pies for certain data values
944
 
945
* [me] Fixed bug with images maps assuming that slices
946
  where order anti-clockwise and the new pie algorithm did them
947
  clockwise.
948
 
949
* [me] Added subtitle to Pie and Pie3D graphs.
950
 
951
[02-April-2002] JpGraph 1.6
952
===========================
953
Changes/Additions:
954
* [me] Changed license to QPL
955
 
956
* [me] Completely rewritten algorithm for 3D pies which gives MUCH better result. Will
957
  also allow exploded 3D pies.
958
 
959
* [D. Reinbach] Better handling of filling line plot with negative
960
  values
961
 
962
* [me] Added LinePlot::StrokeDataValue() for easy handling of plotting
963
  data point values.
964
* [Gyozo Papp,me] Real locales for Gantt chart. The locales now take a
965
  proper locale string (e.g. "en_UK", or "sv_SE") to get the real
966
  locales from the system. Note that this breaks the sc compatibility
967
 
968
* [me] Removed jpgraph_dir.php and moved the directory settings back in
969
  jpgraph.php due to problems in PHP with nested includes and search
970
  paths.
971
 
972
* [me] Added possibility to show values for scatter plot by
973
  refactoring value support back into jpgraph.php Plot() class. This
974
  makes it easy for all subclasses that uses Plot() to add display
975
  value support.
976
 
977
* [me] Added possibility to use X-coordinates in Error plots
978
 
979
* [me] Fixed missing LogScale::SetXLabelOffset(). This made it
980
  impossible to use linear plots with a log x-scale !!!
981
 
982
* [me] Fixed bug  so possible Y2 plots are also taken into account when auto
983
  scaling the X-axis. This could otherwise couse plots outside the
984
  scale when using Y and Y2 plots where Y2 plots had more data values.
985
 
986
* [me] **********!!SC BREAK!!**************
987
  Aligned the way values are displayed on Bar graphs with line and
988
  scatter plots. The values to be displayed for these plots are now
989
  all accessed through the "value" property of the plot. For example
990
  $myBarPlot->value->Show();
991
  instead of the previous
992
  $myBarPlot->ShowValue();
993
 
994
* [me] **********!!SC BREAK!!**************
995
  Aligned the way values are displayed in Pie plots with line and
996
  bar plots. You know use the "value" property in exactly the same way
997
  as in bars and lines.
998
 
999
* [me] **********!!SC BREAK!!**************
1000
  Aligned the way values are displayed in 3D Pie plots with line and
1001
  bar plots. You know use the "value" property in exactly the same way
1002
  as in bars and lines.
1003
 
1004
* [me] Added possibility to display individual values in an
1005
  accumulated bar graph in addition to the overall accumulated
1006
  value. This is done as usual through setting the individual bars
1007
  value property to what you want (size, color, format and so on)
1008
 
1009
* [me] Added another default error handler which is image based to
1010
  make it easier to see error messages when images are included
1011
  in a page. This is now the default error handler.
1012
 
1013
* [me] Added possibility to specify the location of the X-Axis
1014
  to the top of the graph by using xaxis->SetPos("max") also
1015
  added new Example topxaxisex1.php to demonstrate this feature.
1016
 
1017
* [me] Added more 3D pie examples to demonstrate new functionlity.
1018
 
1019
[01-March-2002] JpGraph 1.5.3
1020
=============================
1021
Changes/Additions:
1022
* [me] Make it possible to use JpGraph 1.5.3 with GD 1.8.x. In 1.5.2 I was
1023
  using a function only available in GD 2.x.
1024
 
1025
 
1026
[29-Feb-2002] JpGraph 1.5.2
1027
===========================
1028
 
1029
Bug fixes:
1030
----------
1031
* [me] Released the correct 3D pie file (By mistake I mixed the stable version with
1032
  the  development branch for 2.0 in the 1.5.1 release just to prove
1033
  that I'm still human :-)
1034
 
1035
* [me] Fixed out of bounds error when using shadows for bar graphs
1036
  with 0 value
1037
 
1038
* [me] Fixed typo in DisplayValue::SetFormat()
1039
 
1040
* [me] Fixed potential array out of bounds error in Plot::Min() and
1041
  Plot::Max()
1042
 
1043
* [me] Fixed misplaced ')' in string construction in call to
1044
  JpGraph error.
1045
 
1046
Changes/Additions:
1047
------------------
1048
* [me] Added possibility to use "auto" file name when stroking
1049
  directly to a file.
1050
 
1051
 
1052
* [me] Added tag 'title' to the image maps to make for better
1053
  compatibility with Mozilla.
1054
 
1055
* [me] Moved class LineProprty to jpgraph.php from jpgraph_gantt.php
1056
  since it can be used in other modules as well.
1057
 
1058
* [me]Added Text::GetTextHeight() which differs from
1059
  Text::GetFontHeight() in that it takes the total text height
1060
  (possible multiple lines) into account.
1061
 
1062
* [me] Added Image::FilledArc()
1063
 
1064
* [me] Added RotImage::SetTranslation()
1065
       Added RotImage::Circle()
1066
       Added RotImage::FilledCircle()
1067
       Added RotImage::Arc()
1068
       Added RotImage::FilledArc()
1069
 
1070
 
1071
[11-Feb-2002] JpGraph 1.5.1
1072
===========================
1073
* [me] No longer treat a not set $y[0] value as an explicit error. Instead
1074
  silently set $y[0] to 0.
1075
 
1076
* [me] Changed "include" to "require" in jpgraph.php when including
1077
  jpgraph_dir.php. This seems to fix the strange problem whereby
1078
  the constants defined in jpgraph_dir.php didn't have a correct
1079
  value in jpgraph.php.
1080
 
1081
* [me] Fixed problem with correctly drawing of bars when all bars
1082
  are negative. (Previously the baseline wasn't correctly handled
1083
  since min/max values needs to be mirrored for negative bars)
1084
  Note: Funny this problem has gone unnoticed so long.
1085
 
1086
* [me] Fixed problem with doing gradient fill for negative bars.
1087
 
1088
* [me] Fixed problem with autoscaling when there is a very small
1089
  difference (< 0.00001) between min and max and when both min and max are
1090
  negative. This might happen if you have a single negative value.
1091
 
1092
* [me] Added labels for line graph. Each point my now also optionally
1093
  display it's value on a line graph. Value are controlled trough
1094
  class DisplayValue and it's instance in LinePlot.
1095
  LinePlot->value->Show(),
1096
  LinePlot->value->SetColor(),
1097
  LinePlot->value->SetFont(),
1098
  LinePlot->value->SetMargin(),
1099
  LinePlot->value->SetFormat(),
1100
 
1101
 
1102
[27-Jan-2002] JpGraph 1.5
1103
=========================
1104
* [me] Fixed misnamed xmin variable in Min() for acc bars
1105
 
1106
* [me] Added possibility to specify paragraph alignment for
1107
  multi line text, i.e the text can be left,right or center aligned
1108
  within it's bounded box. The lignment is set by the new method
1109
  Text::ParagraphAlign()
1110
 
1111
* [me] Changed position specification for text so that if the position
1112
  is specified in range [0,1] it is interpreted as fraction of image
1113
  height width and otherwise as absolute pixels.
1114
 
1115
* [me] Added possibility to specify pie size (radius) both as a fraction and
1116
  absolute size in pixels.
1117
 
1118
* [me] Added possibility to tweak color specification by adding a
1119
  saturation percentage, i.e you can specify color as "red:0.65"
1120
  which means 65% of the red value (in other words 35% darker).
1121
 
1122
* [me] Tweaked the estimation of number of segments to approximate an
1123
  arc in Image::CakeSlice.
1124
 
1125
[17-Jan-2002] JpGraph 1.5beta2a
1126
===============================
1127
* [me] Fixed typo in Max() calculation for accumulated bar graphs
1128
  which caused it to return wrong value.
1129
 
1130
* [me] For Min() calculation for acc bars graphs take the user
1131
  specified ymin into account.
1132
 
1133
* [Peter Svistunov, me] Added Cyrillic unicode support through the
1134
  global define LANGUAGE_CYRILLIC. This is also the start of a
1135
  generic support for Unicode languages through the LanguageConv
1136
  class.
1137
 
1138
 
1139
[15-Jan-2002] JpGraph 1.5beta2
1140
==============================
1141
* [me] Rewrite of the pie-chart drawing algorithm. This version
1142
  is slightly slower but avoids using GD floodfill function. This
1143
  fixes problems with small slices not being filled completely. As
1144
  an added bonus it is now possible to explode (and specify the
1145
  explode radius) for all slices. It is also possible to draw the
1146
  pie without having internal borders between the slices as well
1147
  as turning on/off the border surronding the pie.
1148
 
1149
* [me] Added graphic primitive CakeSlice() to the Image class.
1150
  Used to simplify pie-drawing.
1151
 
1152
* [me] Added more generic error handling. It is now possible to
1153
  install your own error object with
1154
  JpGraphError::Install(<name of error object>)
1155
  The default error handler will just abort execution.
1156
 
1157
* [me] Security whole in utility script for displaying source
1158
  and image in frames fixed.
1159
 
1160
* [Cedric Scheyder] Actively ignore hours in calculating Max/Min
1161
  values for dates in Gantt charts to avoid problems in autoscaling
1162
  when users specify start and end dates down to hours.
1163
 
1164
* [Rick Widmer] Fixed problem in calculating min/max value when first
1165
  Y-value was non-numeric.
1166
 
1167
* [me] Fixed calculation of width and height of text with multiple lines.
1168
  Multiple text lines (text blocks) should now be almost fully supported.
1169
 
1170
 
1171
[16-Dec-2001] JpGraph 1.5-BETA
1172
==============================
1173
* Take "\n" into (some) account when calculating string height and width
1174
  Text output now supports multiple lines better.
1175
 
1176
* [me] Removed reference to global PHP_SELF, use HTTP_SERVER_VARS array
1177
  instead. This makes JpGraph working with 'register_globals' turned
1178
  off.
1179
 
1180
* [me] Added some rudimentary check that GD is enabled before trying to
1181
  run JpGraph.
1182
 
1183
* [me] Fixed silly cut-and-paste bug in AccBarPlot::Max() which could
1184
  cause to small max values to be returned
1185
 
1186
* [me] Added property 'title' to PlotMark. The title is printed in the center
1187
  of the plotmark.
1188
 
1189
* [DanNY (dulcis28@hotmail.com)] Added JpGraph Logo. (Thanks!)
1190
 
1191
* [me] Added jplintphp.php, jpgendoc.php, jplintdriver.php which are
1192
  parsing, documentation and pretty printing tools I use to help
1193
  me to documentation and find unused code.
1194
  Tthat does some simple static analysis on PHP for silly mistakes
1195
  that I do (Like using instance variables without qualifying them
1196
  with "$this->" ) The tool also warns about unused instance variables.
1197
  Since it also parses the classes and methods I use it to generate
1198
  the documentation skeleton for the reference section.
1199
 
1200
* [me] Added Gantt chart funcionality, jpgraph_gantt.php . See
1201
  Gantt tutorial for help on usage.
1202
 
1203
* [me] Added new Gantt tutorial
1204
 
1205
* [me] Added BKIMG_CENTER, possibility to center the background image.
1206
 
1207
* [me] Timeout function now also aplies when you generate an image
1208
  off-line, i.e if the imagefile exist and is within the time window
1209
  now file will be written.
1210
 
1211
* [Rasmus Lerdorf] Added patch to make background images work with GD 2.x
1212
  N.B GD 2.01 has bugs in handling TTF font with truecolor images which
1213
  are fixed in 2.02 but that has (of this writing) still not been officially
1214
  released. GD 2.x support in JpGraph is still to be considered experimental.
1215
 
1216
* [me] Fixed some potential rounding errors in 2D Pie plot which in some
1217
  circumstances might have caused a flood fill to escape. Also added check
1218
  to better handle very small slices so we don't try to do a fill
1219
  on the border edge.
1220
 
1221
* [me] Slightly changed the internal design for band patterns.
1222
  They are now created by a factory class instead. This makes it much easier
1223
  to re-use and have maximum code reuse.
1224
 
1225
* [me] Factored out some functionlity from Graph::Stroke() to make it possible
1226
  to re-use some code in GanttGraph::Stroke()
1227
 
1228
* [me] One more instance when PHP surprised me by thinking 0 == "-" aarrghhh
1229
  Now I think (knock on wood) all problems with data points=0 should be solved
1230
 
1231
* [me] Added '&' to the assignment in Graph::Add() This now lets you specify changes
1232
  for lines, plots even after they been added to a Graph.  But I'm not sure if this
1233
  is really such a good ide because you will have problem if you write code
1234
  like
1235
 
1236
  	for( .... ) {
1237
  		$myplot = new LinePlot(.....);
1238
  		$graph->Add($myplot);
1239
  	}
1240
 
1241
  	Since this will not work the way you think (why?) Because the same
1242
  	reference to the variable $myplot will be used for all additions and
1243
  	hence the graph will only have multiple instances of the last added
1244
  	LinePlot(). Have to think of this and what is the best way. (I will
1245
  	probably never get used to PHP references....)
1246
 
1247
 
1248
[11-Nov-2001] JpGraph 1.4
1249
==========================
1250
Bug Fixes:
1251
-------------------------------------------------------------------------------------
1252
* [me] Enabled E_NOTICE warnings in my PHP installation and found a couple of
1253
  glitches (harmeless out-of-bound in two loops) which is now corrected.
1254
* [me] Fixed problem in line plots where y-value==0 wasn't drawn. (Once again
1255
  bitten by the fact that in PHP the following is true: ""==0)
1256
* [me] Fixed color specification for bars when initialized as an array of colors
1257
* [me] Fixed color of bars using shadow which was advertedly set to shadow color
1258
* [me] Fixing incorrect color specification for legends using bars with color arrays
1259
* [me] Add check for sum=0 in pie plots to avoid divide by 0 problem
1260
* [me] Changed the stroke orderd for FilledRectangle() so that the shadow doesn't
1261
  overwrite a line with weight > 1
1262
* [me] Fixed incorrect calculation of font height for titles which cause the
1263
       subtitle to be to close to the title.
1264
 
1265
Additions:
1266
-------------------------------------------------------------------------------------
1267
* [me] Added depth parameter (DEPTH_FRONT, DEPTH_BACK) for gridlines
1268
       Graph::SetGridDepth()
1269
 
1270
* [me] Added possibility to add static horizontal and vertical band with a
1271
       pattern in the plot area. Graph::AddBand() Supports solid, diagonal,
1272
       stright line, 3D-plane crosses (both diagonal/vertical) patterns.
1273
       Graph::AddBand()
1274
 
1275
* [me] Added possibility to have static lines in the plot. This is now implemented
1276
       with new class PlotLine and two new functions Graph::AddLine(),
1277
 
1278
* [me] Added symbolic constants to specify background image types
1279
       BGIMG_COPY, BGIMG_FILLPLOT, BGIMG_FILLFRAME
1280
 
1281
* [me] Added extended label formatting through either
1282
   	Axis::SetLabelFormatString()		C-style formatting string
1283
   	or
1284
   	Axis::SetLabelFormatCallback()	A callback function that are given the value to be displayed
1285
   												and should manipulate the value as it likes
1286
 
1287
 		The use of the old style digit precision variable will be deprecated from next version.
1288
 
1289
* [me] Added error check if supplied Y-data has unspecified value at index 0 to avoid
1290
  out of bounds error when corrupted data is sent in to JpGraph.
1291
 
1292
* [me] Added possibility to specify image depth for gridlines. You can now specify
1293
  Graph::SetGridDepth() as DEPTH_FRONT or DEPTH_BACK. Depending on if you want
1294
  the gridlines at the back of in front of your plots.
1295
 
1296
* [me] Added possibility to specify Cache file name as "auto". In this case the
1297
  image file name will have the same name as the scriupt that generates the
1298
  image with the extension of the automtically generated graphic format.
1299
  NOTE: You will get the wrong extension using this feature at the same
1300
  time as specifying a different graphic format thne the automatically choosen
1301
  one.
1302
 
1303
* [me] Added some more advanced examples for impuls drawings impulsex3.php and
1304
  impulsex4.php
1305
 
1306
* [me] The values on top of bars can now be at an angle and the horisontal
1307
  position now account for if a shadow is present.
1308
 
1309
* [me] Added filename to Graph::Stroke() which makes it easy to output an image
1310
       directly to a file _without_ streaming it back to the browser. Usefull for
1311
       batch processing
1312
 
1313
* [me] Added new tutorial for bar graphs
1314
 
1315
* [me] New scale type "int". This gives a normal linear scale but restricts
1316
  ticks (and labels) to integer values. Can be used for both X and Y scales.
1317
 
1318
* [me] Added subtitle to graph
1319
 
1320
* [me] Added possibility to specify an array of X-coordinates with bar plots to
1321
  position individual bars on the X-scale. Makes it much easier to combine
1322
  bar plots with other types of plots, (line, scatter etc)
1323
 
1324
* [me] Extended utility adjimage.php to allow it to manipulate color saturation.
1325
 
1326
* [me] Added Image::AdjSat() to allow manipulation of the color
1327
  saturation in the image. This also makes it very easy to change the image
1328
  to greyscale (just set saturation=-1).
1329
  Extended Graph::AdjImage() and Graph::AdjBackgroundImage()
1330
  to include new parameter for saturation value.
1331
 
1332
* [me] Added BarPlot::SetAlign() which makes it possible to align
1333
  bars relative the tickmark for linear and int scale
1334
 
1335
* [me] Added possibility to absolutely set the width of bars. This will
1336
  override the automatically decided with based on the scale and tick distance
1337
 
1338
Changes:
1339
-------------------------------------------------------------------------------------
1340
* [me] Legend color for scatter plots now becomes the fill color of the mark
1341
 
1342
* [me] Impulsplots now anchors at Y-value = 0 if the y-axis contains both negative
1343
  and positive values. Otherwise it will go to the lowest value on the Y-axis.
1344
 
1345
* [me] Bar shadows is now connected to bars to make for a stronger 3D effect.
1346
 
1347
* [me] Removed all deprecated references and usage of FONT0, FONT1, FONT2. Note
1348
  You can no longer use these. Instead use FF_FONT0, FF_FONT1, FF_FONT2 etc
1349
 
1350
* [me] Text scale now starts default labelling at 0
1351
 
1352
* [me] All plots internally adjusted to start at default X-coordinate 0 to harmonize better
1353
  with X-scale.
1354
 
1355
* [me] Graph->Stroke() now just returns instead of exit()
1356
 
1357
* [me] Removed flag argument for BarPlot::SetShadow()
1358
 
1359
* [me] Bar plots are know by default filled with lightblue
1360
  unless otherwise specified.
1361
 
1362
* [me] Changed the way bars are positioned for linear and integer
1363
  scale for maximum flexibility when mixing barplot with other
1364
  plots.
1365
 
1366
* [me] The ALT strings for all image maps now uses printf() syntax to display
1367
  the actual value. If you have used this feature you must update your
1368
  ALT strings, for example "val=%v" must become "val=%d" or whatever format
1369
  you choose.
1370
 
1371
* [me] Changed the formatting of bar graphs by changing the framework
1372
  so that labels on the x-axis using a text scale is now independent
1373
  on the tick marks.
1374
  This makes it possible to have the labels centered under each bar but have
1375
  the tickmarks between the bars as most other commercial graph packages
1376
  format these typw of graphs. Introduced Axis::SetTextLabelsInterval()
1377
  Effects jpgraph.php, jpgraph_log.php and jpgraph_bar.php
1378
 
1379
* [me] Renamed Axis::SetTextTicks() to Axis::SetTextTicksInterval() to make the name
1380
  more descriptive. The old name is deprecated from this version on but will still
1381
  work until 2.0 to keep compatibility.
1382
 
1383
* [me] Cleaned up implementation of pie3d so it now inherits from pie to avoid
1384
  a lot of duplicated code and easier maintainance.  (A good example of the real
1385
  life OO programming where you might not see the similarities between two classes
1386
  until you fully implement them.) File size of jpgraph_pie3d.php has shrunk by
1387
  roughly 40%
1388
 
1389
[23-Sep-2001] JpGraph 1.3.1
1390
===========================
1391
Additions:
1392
* [Michael Anthon] Added client side image maps to 3D pie plots
1393
* [me] Added possibility to better control the labeling of pie graphs with an optional
1394
  label formatting string PiePlot::SetLabelFormat(), PiePlot::SetLabelType()
1395
  This also makes it possible to have labels with the absolute value and not only the
1396
  percentage. (same with pie3d)
1397
* [me] Added formatting capabilities for legends on pie and pie3d graphs. Can have the value
1398
  automtically included (Se Examples/pieex6.php)
1399
* [me] Added some more examples, negbarvalueex1.php, scatterlinkex2.php, pie3d_csimex1.php
1400
  pieex6.php
1401
 
1402
 
1403
Known bugs and omissions:
1404
- Client side image maps does not currently handle exploded pie graphs (just
1405
  normal pie graphs.
1406
 
1407
Bug fixes:
1408
* [me] Fixed problem with positioning the displayed values for negative bars
1409
* [me] Fixed shadow for negative bars
1410
* [me] Fixed problem in Plot::Min(), PlotMax::Max() whereby zeros where not counted
1411
  towards minimum since in PHP 0=="". This could sometimes cause strange autoscaling.
1412
* [Vitaly E. Ashmarin] Wrong arguments to imagejpeg() for combination of specified
1413
  image quality and filename = ""
1414
* [John Milne] BarPlot::SetFillColor() fixed glitch in loop variable
1415
 
1416
 
1417
[13-Sep-2001] JpGraph 1.3
1418
=========================
1419
Note: I have to the best of my memory tried to give credit where
1420
credit is due. Howevever, since ver 1.2.2 I have received over 2000 mail about
1421
JpGraph with Questions/Suggestions/Improvments (and a few bug fixes) etc and
1422
I might have missed some in the process of going through these mails. The
1423
fault is completely my own and if you recognize some idea I have implemented
1424
something which you think you should have credit for please drop me a note and
1425
I will adjust the add you to the change notes.
1426
 
1427
Known bugs and omissions:
1428
- The automatic value on bar graphs does not work well with
1429
  negative bar graphs. (Quite easy to fix though..)
1430
- Client side image maps does not currently handle exploded pie graphs (just
1431
  normal pie graphs.
1432
 
1433
IMPORTANT NOTICE:
1434
* SC (SOURCE COMPATIBILITY) BREAK !: If you want to rotate the image the parameter
1435
  is no longer supplied directly in the call to Graph() but rather as a method
1436
  call Graph::SetAngle(). I decided to make this SC break since I judged it more
1437
  natural to supply the timeout value just efter the specified cache-file name
1438
  in the Graph() call. Hopefully this will not hit to many people since my hunch is
1439
  that few people uses the rotate function and it's very easy to fix those script
1440
  that does so.
1441
 
1442
Bug Fixes:
1443
* [michael@anthon.net] Corrected behviour of accumulated bar graph so it now
1444
  diffrentiate between the accumulated positive and negative values.
1445
 
1446
* [marko@fly.srk.fer.hr] Fixed Max() calculations for accumulated bar graphs
1447
  where my original code was a little bit sloppy. (I simply took the max for
1448
  each plot and added those and this might be more then the real maximum.)
1449
 
1450
* [m.purgar@extracom.de] Spotting an incorrect "jpg" in the image where it should
1451
  have been "jpeg"
1452
 
1453
* [adam.blomberg@euroseek.net,patrik.johansson@euroseek.net] 3D-Pie filling
1454
  problem for small slices due to the discrapency between GD arc() and the
1455
  JpGraphs purely mathematical definition of an ellipse.
1456
 
1457
* [delorme.maxime@free.fr] 2D-Pie Floodfill might "escape" for very small values of slices.
1458
 
1459
* [et.al] Improved handling of 0:s vs "" values. This was necessary since PHP treats
1460
 
1461
  two cases. This caused 0 data values to be treated as null values and not be inluded
1462
  in (for example) autoscaling consideration.
1463
 
1464
Additions:
1465
* [me] Added new global constant USE_CACHE which makes it possible to disable
1466
  writing to the cache even if a filename is supplied in th Graph::Graph() method.
1467
 
1468
* [me] Added LinePlot::SetStyle() to make it possible to make dashed, dotted etc
1469
  lineplots. (See example1.2). Also adjusted legend to display the same style in
1470
  the legend.
1471
 
1472
* [michael@anthon.net, me] Added client side image maps for all types of bars
1473
  and 2D pies with possibility to have the actual value shown in an ALT-tag.
1474
 
1475
* [me] Added drop shadow (or rather "right-up" shadow) to bar graphs BarPlot::SetShadow()
1476
 
1477
* [me] Added possibility to have the actual value of bar graphs displayed at top of graphs
1478
  via BarPlot::ShowValue(), BarPlot::SetValueFont(), SetValueMargin(), SetValueColor()
1479
  The format of the value is specified according to standard C printf() string formatting
1480
  i.e. "val=%d" will for example print a string "val=13"
1481
 
1482
* [me] Added possibility to adjust brightness and contrast for background image
1483
  via the Graph::AdjBackgroundImage() method.
1484
 
1485
* [me] Added possibility to adjust brightness and contrast in the finished image
1486
  via the Image::AdjBrightContrast() method.
1487
 
1488
* [me] Added possibility to just generate an image to a file and not stream
1489
  it directly back to the browser. Added parameter $aInline to Graph::Graph()
1490
 
1491
* [me] Added timout for cache, i.e if the image in the cache is older then
1492
  the specified number of minutes (=0 never re-generate, -1 always regenerate)
1493
  then re-generate the image. Just specify a timeout in minutes with a call:
1494
  $mygraph->cache->SetTimeOut(10)
1495
 
1496
* [me] Added possibility to use logarithmic scale for SpiderPlots. This also resulted
1497
  in a little bit of internal cleanup in jpgraph_spider.php.
1498
 
1499
* [me] Added SetWeight() method to class Ticks() for control of line thickness for ticks
1500
 
1501
* [me] Added SetMarkColor method to class TIcks() which lets you specify different
1502
  colors for major and minor tick marks.
1503
 
1504
* [me] Added method RelTranslate() to LinearScale() and LogScale() classes which is used
1505
  in Spider class. This makes a world to screen relative translation.
1506
 
1507
* [me] Added possibility to link data points in a scatter plot with lines
1508
  by the addition of method ScatterPlot::SetLinkPoints()
1509
 
1510
* [me,john.milne@one2one.co.uk] Added possibility to have individual colors of
1511
  bars in bar graphs by having BarPlot::SetColor() accept an array as argument.
1512
 
1513
* [sergio@alsernet.es] Make it possibly to have x-tick labels to consist of two lines
1514
  by inserting a "\n" separator in the text.
1515
 
1516
* [CK1@wwwtech.de] Adding JPEG quality setting. This is done by adding
1517
  a method SetQuality() to the img class. After creating a graph this can then
1518
  be used as $mygraph->img->SetQuality($some_qvalue).
1519
  Currently this only affects JPEG images.
1520
 
1521
* [delorme.maxime@free.fr] Possibility to use different grace value for top and bottom
1522
  of graph and not just a single value as in 1.2.2
1523
 
1524
Changes:
1525
* [me] Changed group/permission handling for created files to better adjust itself
1526
  to the way the local Apache user is setup
1527
 
1528
* [me] The default for spider graphs is now NOT to be filled
1529
 
1530
* [me] Allow all datapoints to be 0 which will set the scale to [0,1]
1531
 
1532
* [me] Removed the need for a DIR_BASE variable
1533
 
1534
 
1535
[29-Apr-2001] JpGraph 1.2.2
1536
===========================
1537
Bug fixes:
1538
* Removed reference to non-existent property 'bypass' in class RotImg
1539
* Changed to allow the last X-gridline to be drawn (comparison with limit was '<'
1540
  where it should have been '<=' )
1541
 
1542
Additions:
1543
* Added possibility to use background image
1544
* Added possibility to use approximate color through the "USE_APPROX_COLORS"
1545
  constant
1546
* Handling of diffrent form of "null values" for line graphs. An y-value
1547
  can now be "" or "-". In the first case (a true null value) this mark
1548
  will cause a disruption in the line graph to indicate that the value
1549
  is undefined. In the other case specifying the value as "-" will cause
1550
  the value to be ignored bu the line will still be drawn between the
1551
  previous data point and the following. Neither of these cases will have
1552
  any mark drawn.
1553
* Added a fatal warning when no more colors can be allocated for the chosen
1554
  graphic format.
1555
 
1556
Changes:
1557
* "Downgraded" anti-aliasing algorithm to use fewer color levels
1558
  in the transition to avoid using up to much of the color palette
1559
* Cleaned up some of the code to not rely on PHP default initialization
1560
  of variables. This will help those who have got warnings when they
1561
  have had all error reporting enabled in php.ini (E_ALL)
1562
* Legends now show the plot mark (if defined) instead of just a square of
1563
  the right color.
1564
 
1565
Acknowledgements:
1566
* Thanks to kevin@pricetrak.com  for suggesting the treatment of
1567
  pure NULL values.
1568
* Thanks to luca_n@hotmail.com for getting my attention to the warnings
1569
  caused by relying on PHP default initialization of variables.
1570
  (My installation had E_NOTICE disabled, hence I never got those warning myself.)
1571
 
1572
 
1573
[29-Mar-2001] JpGraph 1.2.1
1574
===========================
1575
Bug fixes:
1576
* When min and max values for autoscaling was equal this resulted in trying to calculate
1577
  log10(0) = INF resulting in an infinite loop in LinearTicks::Stroke()
1578
* When autoscaling was used with only one data point it tried to calculate log10(0) = INF
1579
  resulting in an infinite loop
1580
* fopen("xxx","r") should be fopen("xxx","rb") causes problems on windows system with IIS5
1581
* JPG streaming function was incorrectly called "imagejpg" should be "imagejpeg" (see the difference?)
1582
* Non existent color name in jpgraph_pie.php
1583
* Removed all deprecated forced references in function calls
1584
* The width of the surrunding box was not calculated correctly for internal bold font
1585
 
1586
Additions:
1587
* Color themes for pie graphs
1588
* Beta release of 3D pie graphs
1589
* Added DIR_BASE as constant to make it possible to use one system wide copy
1590
of JpGraph. NOTE: This must be set to the directory where JpGraph is installed.
1591
 
1592
Acknowledgements:
1593
* (ck1@wwwtech.de) (and a russian guy which I unfortunately lost the name of)
1594
  for reporting the imagejpg spelling mistake
1595
* (ales.gregor@zps.skoda-auto.cz) for finding the binary file problem with IIS
1596
* Several people have reported the problem with autoscaling when all Y-values
1597
  were equal. Thanks to you all for acting as my privet QA team!
1598
 
1599
 
1600
[18-Mar-2001] JpGraph 1.2
1601
=========================
1602
Additions:
1603
----------
1604
* Added "BRAND_TIMING" which give possibility to brand each image generated with
1605
the time (in ms) it took to generate the image.
1606
* Added Gradient Fill for bar graphs, The gradient fill allows 6 different styles.
1607
* Added Anti-aliasing for lines. Note drawing anti-aliased lines is 7-10 times
1608
slower then "normal" lines!
1609
* Added full TTF support. this means an internal SC break (Source Code Break). Normal JpGraph
1610
script should not be affected if you have used only publized "public" frunctions. The SC break is
1611
to allow uniform treatment of both internal fonts and TTF. This has been achieved by changing
1612
the parameter list for SetFont(). However, backward compatibility with the old naming conventions
1613
for internal fonts are kepot, e.g. SetFont(FONT1_BOLD) still works but is deprecated and will not
1614
be valid from 2.0
1615
* Added possibility to control font for title of Spider Axis through the added
1616
property 'title' to the axis in the spider graph.
1617
* Added 'SetColor()' in pie graphs as a shortcut to SetMarginColor() to set the background color
1618
* Added possibility to draw X-axis labels at arbitrary angle. Internal fonts only supports
1619
horizontal and verical.
1620
* Added possibility to draw boxed text at an angle
1621
* Added possibility to have different colors for axis and the labels on the axis by the addition
1622
of extra parameter to SetColor()
1623
* Added 350 more named colors.
1624
* Added canvas "fake" graph to make it easy to draw arbitrary graphics
1625
* Added SetCenter() method for line graphs.
1626
* Added SetGrace() for autoscaling purposes.
1627
 
1628
Changes:
1629
--------
1630
* If you use a text-scale for X-axis the default labels now start at 1 instead of 0 since this is
1631
actually a counting scale and it makes more sense to start at 1.
1632
* Improved handling of bar-graphs with negative values.
1633
* Updated existing examples to use new format for SetFont()
1634
* Made it a critical error to specify a non existant font
1635
* Changed so that orientation for Text() is now given as an angle, i.e. SetOrientation(45). Old
1636
style of using SetOrientation("v") (for vertical) is deprecated. But will work until V2
1637
 
1638
Bug fixes:
1639
----------
1640
* Improved handling of computational effects on small values in scaling where a rounding error might cause the
1641
last label not to be drawn.
1642
* The position for the title of X-axis could in some cases be slightly different in first
1643
and second pass due to incorrectly determination of the X-axis labels font height.
1644
* Specifying an minimum Y-value for Y-axis on bar graphs could on rare occasions (combination
1645
of scale values and specified density of autoscaling ticks) cause a gap between the bottom of
1646
each bar and the X-axis.
1647
 
1648
 
1649
[18-Feb-2001] JpGraph 1.1
1650
=========================
1651
Additions/Changes:
1652
------------------
1653
* Added Spider graphs
1654
* Added Pie graph
1655
* Added Scatter (and impuls) graphs
1656
* Added possibility to rotate plots an arbitrary angle
1657
* Added step style rendering to lineplot
1658
* Added Breseham circle drawing which gives better visual apperance
1659
  then the built in Arc() in GD (on the expense of CPU and performance)
1660
* Improved Polygon and Rectangle drawing so that it will use line weight settings
1661
* Improved the visual appearance of lines with weight>1 by correctly calculating
1662
  (angle wise) the endpoints and using a filled polygon to draw the line.
1663
  Unfortunately it would require some real improvements in the GD library to really improve
1664
  the visual appeance of lines with weight>1. This is as good as it gets without writing
1665
  a low level pixe-by-pixel correct plotting. With my method you get it to look visually
1666
  aestethic right in 90% of the cases with just 10% work.
1667
* Added MARK_FILLEDCIRCLE as new mark type. Note that due too the poor performance of the
1668
  basic Arc() image primitive in PHP4 the circles isn't perfect circles, they tend to be a
1669
  a little bit flat at multiples on PI/2.
1670
* Added the possibility to have a separate fill- and line- color for marks
1671
* Moved Class PlotMark from jpgraph_line.php to base in jpgraph.php since this class is also used
1672
  with scatter plots.
1673
* Made it a critical error to try to use Text X-scale with specified X-data points.
1674
  Previously no warning was given for this non-defined state. (Using text scale with specified
1675
  points really doesn't make sense.)
1676
* Made it a critical error to use unknown color rather than silently replacing it with black.
1677
* Updated documentation to reflect added capability
1678
 
1679
 
1680
Bug fixes:
1681
----------
1682
* Fixed minor bug in Line() in which it didn't update the last point for use with
1683
  subsequent LineTo() calls (forgotten $this->)
1684
* Eliminated assumptions in DashedLine() that x1<=x2 and y1<=y2 eliminates the
1685
  potential pixel overshoot.
1686
* Fixed a serious bug in Line plot when used with a specified X-scale (not the normal default)
1687
  since the X-coordinate wasn't read from the correct vector!
1688
* Fixed a serious bug whe using as specified X-scale since the maximum value for a plot
1689
  wasn't correctly passed to the autoscaling.
1690
  Note: The reason that these two bugs haven't been discovered previously is the fact
1691
  that my test specs didn't include test cases to do with specified X-axis (I almost never ever use that).
1692
  This has now been corrected and added to the test suit.
1693
* Fixed so the possible box around the plot area correctly honours the weight specified for it.
1694
 
1695
 
1696
[05-Feb-2001] JpGraph 1.0
1697
=========================
1698
* Initial release.
1699
 
1700
[EOF]