15.2. Drawing Arcs, Ellipses, and Circles
Problem
You want to draw open or filled curves. For example, you want to draw a pie chart showing the results of a user poll.
Solution
To draw an
arc, use
ImageArc( )
:
ImageArc($image, $x, $y, $width, $height, $start, $end, $color);
To draw an ellipse, use ImageArc( )
and set $start
to 0
and $end
to 360
:
ImageArc($image, $x, $y, $width, $height, 0, 360, $color);
To draw a circle, use ImageArc( )
, set $start
to 0
,
set $end
to 360
, and use the
same value for both $width
and
$height
:
ImageArc($image, $x, $y, $diameter, $diameter, 0, 360, $color);
Discussion
Because the ImageArc( )
function is highly
flexible, you can easily create common curves such as ellipses and
circles by passing it the right values. Like many GD functions, the
first parameter is the canvas. The
next two parameters are the x and y coordinates for the center
position of the arc. After that comes the arc width and height. Since
a circle is an arc with the same width and height, to draw a circle,
set both numbers to your circle’s diameter.
The sixth and seventh parameters are the starting
and ending angles, in degrees. A value of 0 is at 3
o’clock. The arc then moves clockwise, so 90 is at 6
o’clock, 180 is at 9 o’clock, and
270 is at the top of the hour. (Be careful, this behavior is not
consistent among all GD functions. For example, when you rotate text,
you turn in a counter-clockwise direction.) Since the
arc’s center is located at
($x,$y)
, if you draw a semicircle from ...
Get PHP Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.