Author: Edward Shore (original article)
Welcome to Part 7 of the HP Prime Tutorial. Continuing in our drawing commands, we are going to feature ARC and LINE.
Draws a Circle or a Circular Arc
Syntax:
Cartesian:ARC(x, y, r, angle 1*, angle 2*, color*).
Pixels:ARC_P(x, y, r, angle 1*, angle 2*, color*)
x
: x coordinatey
: y coordinater
: length of the radius in pixels. This is why I prefer using pixel commands in my programming.angle 1 and angle 2
: If included, these two arguments draw an arc segment. The angle follows the conventional circle notation, starting with 0 (due east) going counter clockwise. Use the current angle mode.color
: color of the arc. To use it, angle 1 and angle 2 must be included.Draws a line segment from (x1, y1) to (x2, y2). The color is optional.
Syntax:
Cartesian:LINE(x1, y1, x2, y2, color*)
Pixels:LINE_P(x1, y1, x2, y2, color*)
The next to programs CIRCLE1
and CIRCLE2
do the same thing: draw a circle, label quadrants and angels.
The reason why I am posting these two is that when you are programming graphics, care must be given.
Adjustments to where graphics are placed can be necessary and I hope CIRCLE1
and CIRCLE2
illustrates this.
Medium font is assumed (set in Home Settings).
The angle symbol (°
) get be retrieved by pressing °
from the grid.
CIRCLE1
(the "rough draft", if you will):
EXPORT CIRCLE1()
BEGIN
RECT();
TEXTOUT_P("Circle", 0, 0);
TEXTOUT_P("II", 109, 59);
TEXTOUT_P("90°", 159, 59);
TEXTOUT_P("I", 209, 59);
TEXTOUT_P("180°", 109, 109);
TEXTOUT_P("0°", 209, 109);
TEXTOUT_P("III", 109, 159);
TEXTOUT_P("270°", 159, 159);
TEXTOUT_P("IV", 209, 159);
LINE_P(0, 109, 318, 109, RGB(16, 16, 16));
LINE_P(159, 0, 159, 239, RGB(16, 16, 16));
ARC_P(159, 109, 30);
FREEZE;
END;
The results:
This is good, but we can do better. First I am going to move the labels II, 180°, and III 10 pixels to the left, primarily so the 180° label does not touch the circle.
Second I am going to move the labels III, 270°, and IV up 10 pixels to make the bottom line look better and not "so far away" from the circle.
Although it is not necessarily, I am going to make the angle labels blue. I will need to specify the font size code at 0.
Finally, I find that the lines are too dark. I am going to make them a bit more gray.
Here is the second revision. For the purposes of this tutorial, I call this program CIRCLE2
.
EXPORT CIRCLE2()
BEGIN
RECT();
TEXTOUT_P("Circle", 0, 0);
TEXTOUT_P("II", 99, 59);
TEXTOUT_P("90°", 159, 59, 0, RGB(0, 0, 255));
TEXTOUT_P("I", 209, 59);
TEXTOUT_P("180°", 99, 109, 0, RGB(0, 0, 255));
TEXTOUT_P("0°", 209, 109, 0, RGB(0, 0, 255));
TEXTOUT_P("III", 99, 149);
TEXTOUT_P("270°", 159, 149, 0, RGB(0, 0, 255));
TEXTOUT_P("IV", 209, 149);
LINE_P(0, 109, 318, 109, RGB(128, 128, 128));
LINE_P(159, 0, 159, 239, RGB(128, 128, 128));
ARC_P(159, 109, 30);
FREEZE;
END;
A better looking picture.
As always, thanks for your time, comments, and questions. Hopefully this session is helpful.