(Defined in: jpgraph_canvtools.php : 69)
Class usage and Overview
This is mainly awrapper class around thye current image class used. It is meant to make it easier to work with a Canvas graph and a Canvas scale. Basically the class uses the specified scale to trasnalte coordinates which is then passed on to the standard Image routines.
See also related classes:
CanvasScale
Class Methods
Draw a bezier curve
Argument | Default | Description |
$p
| | Array with control points |
$aSteps
|
40
| Number of line segments in curve |
Description:
Draw a Bezier line with specified in the $p array. The points are specified according to the current scale. The positions in the array has the following meaning
(0,1) x0,y0 (First point on curver)
(2,3) x,y, (Control point 1)
(4,5) x,y, (Control point 2)
(6,7) x,y, (End point of curve)
See example in canvasbezierex1.php
$p = array(3,6,6,9,5,3,7,4);
$shape->SetColor('black');
$shape->Bezier($p);
Draw a circle
Argument | Default | Description |
$x1
| | Center X-coordinate |
$y1
| | Center Y-coordinate |
$r
| | Radius |
Description:
Draw a circle onto the canvas
See also:
// The shape class is wrapper around the Imgae class which translates
// the coordinates for us
$shape = new Shape($g,$scale);
$shape->SetColor('black');
// .. and a circle (x,y,diameter)
$shape->Circle(5,14,2);
Draw a filled circle to a canvas
Argument | Default | Description |
$x1
| | Center X-coordinate |
$y1
| | Center Y-coordinate |
$r
| | Radius |
Description:
Draw a filled circle on the canvas using the specified scale.
Note: If you are using GD1.xx you will see moire-patterns in large circles. This is due to the lack of a proper filled circle function in GD 1.xx. Using GD 2.xx will avoid this problem.
See also:
// The shape class is wrapper around the Imgae class which translates
// the coordinates for us
$shape = new Shape($g,$scale);
$shape->SetColor('black');
// .. and a circle (x,y,diameter)
$shape->FilledCircle(5,14,2);
Draw a filled polygon
Argument | Default | Description |
$p
| | Polygon array |
Description:
Draw a filled polygon
Draw a filled rectangle on the canvas
Argument | Default | Description |
$x1
| | Top left X |
$y1
| | Top left Y |
$x2
| | Bottom right X |
$y2
| | Bottom right Y |
Description:
Draw a filled rectangle on the canvas using the current sclae.
// .. add a rectangle
$shape->SetColor('green');
$shape->FilledRectangle(15,8,19,14);
Create a filled rectangle with rounded corners
Argument | Default | Description |
$x1
| | Top left X |
$y1
| | Top left Y |
$x2
| | Bottom right X |
$y2
| | Bottom right Y |
$r
|
null
| Corner radius |
Description:
Create a filled rectangle with rounded corners
A filled rectangle with one corner 'indented'
Argument | Default | Description |
$xt
| | Top left X |
$yt
| | Top left Y |
$w
| | Width |
$h
| | Height |
$iw
|
0
| Indented width |
$ih
|
0
| Indeted height |
$aCorner
|
3
| Corner to indent |
$aFillColor
|
""
| Fill color |
$r
|
4
| Corner radius |
Description:
A rounded rectangle where one of the corner has been moved "into" the rectangle. The indention is determined by the two argument
'iw' width and 'ih' height.
The corners (as used in the $aCorner) are numbered as
0=Top left, 1=top right, 2=bottom right, 3=bottom left
Draw a line between
Argument | Default | Description |
$x1
| | X1 |
$y1
| | Y1 |
$x2
| | X2 |
$y2
| | Y2 |
Description:
Draw a line between two points in the canvas using the current scale.
See also:
// Add a black line
$shape->SetColor('black');
$shape->Line(0,0,20,20);
Draw a closed polygon
Argument | Default | Description |
$p
| | Array of points in polygon |
$aClosed
|
false
| No description available |
Description:
Draw a closed polygon
$p = array(3,6,6,9,5,3,7,4);
$shape->SetColor('blue:0.35');
$shape->Polygon($p);
Draw a rectangle on the canvas
Argument | Default | Description |
$x1
| | Top left X |
$y1
| | Top left Y |
$x2
| | Bottom right X |
$y2
| | Bottom right Y |
Description:
Draw a rectangle on the canvas using the current scale.
// .. add a rectangle
$shape->SetColor('green');
$shape->Rectangle(15,8,19,14);
Draw a rectangle with rounded corners
Argument | Default | Description |
$x1
| | Top left X |
$y1
| | Top left Y |
$x2
| | Bottom right X |
$y2
| | Bottom right Y |
$r
|
null
| Corner radius |
Description:
Draw a rectangle with rounded corners
Specify color to use when drawing shapes
Argument | Default | Description |
$aColor
| | Color specification |
Description:
Specify color to use when drawing shapes
See also:
// Add a black line
$shape->SetColor('black');
$shape->Line(0,0,20,20);
Specify bae point for StrokeText()
Argument | Default | Description |
$halign
| | Horizontal position for basepoint |
$valign
|
"bottom"
| Vertical position for base point |
Description:
Specifies how the coordinate for the text should be interpretated. Possible values for horizontal base-position are
and for vertical
// Interpret the text coordinate as beeing the
// top left corner of the bounding box for the text
$shape->SetTextAlign('left','top');
$shape->StrokeText(....)
Draw a filled rectangle with a drop shadow
Argument | Default | Description |
$x1
| | Top left X |
$y1
| | Top left Y |
$x2
| | Bottom right X |
$y2
| | Bottom right Y |
$fcolor
|
false
| Fill color |
$shadow_width
|
null
| Shadow width |
$shadow_color
|
array(102,102,102)
| Shadow color |
Description:
Draw a filled rectangle with a drop shadow
Methods to draw shapes on canvas
Argument | Default | Description |
$aGraph
| | No description available |
$scale
| | No description available |
Description:
Create a new shape class used to draw siple shape onto a canvas using the specified scale.
See also:
// Setup a basic canvas we can work
$g = new CanvasGraph(400,200,'auto');
$g->SetMargin(5,11,6,11);
$g->SetShadow();
$g->SetMarginColor("teal");
// We need to stroke the plotarea and margin before we add the
// text since we otherwise would overwrite the text.
$g->InitFrame();
// Create a new scale
$scale = new CanvasScale($g);
$scale->Set(0,$xmax,0,$ymax);
// The shape class is wrapper around the Imgae class which translates
// the coordinates for us
$shape = new Shape($g,$scale);