app: change the unit of angles in the draw tool's draw_arc() functions

from the weird X 1/64 of a degree to radian.
This commit is contained in:
Michael Natterer 2010-09-25 17:35:40 +02:00
parent df44ced093
commit 02924e1e70
6 changed files with 27 additions and 32 deletions

View File

@ -518,22 +518,19 @@ gimp_draw_tool_draw_arc (GimpDrawTool *draw_tool,
gdouble y,
gdouble width,
gdouble height,
gint angle1,
gint angle2)
gdouble start_angle,
gdouble slice_angle)
{
GimpCanvasItem *item;
gdouble a1, a2;
g_return_if_fail (GIMP_IS_DRAW_TOOL (draw_tool));
a1 = (gdouble) angle1 / 64.0 / 180.0 * G_PI;
a2 = (gdouble) angle2 / 64.0 / 180.0 * G_PI;
item = gimp_canvas_arc_new (x + width / 2.0,
y + height / 2.0,
width / 2.0,
height / 2.0,
a1, a2,
start_angle,
slice_angle,
FALSE);
gimp_draw_tool_add_item (draw_tool, item);
@ -547,12 +544,11 @@ gimp_draw_tool_draw_arc_by_anchor (GimpDrawTool *draw_tool,
gdouble y,
gint width,
gint height,
gint angle1,
gint angle2,
gdouble start_angle,
gdouble slice_angle,
GtkAnchorType anchor)
{
GimpCanvasItem *item;
gdouble a1, a2;
g_return_if_fail (GIMP_IS_DRAW_TOOL (draw_tool));
@ -561,10 +557,8 @@ gimp_draw_tool_draw_arc_by_anchor (GimpDrawTool *draw_tool,
GIMP_HANDLE_CIRCLE,
anchor, x, y, width, height);
a1 = (gdouble) angle1 / 64.0 / 180.0 * G_PI;
a2 = (gdouble) angle2 / 64.0 / 180.0 * G_PI;
gimp_canvas_handle_set_angles (GIMP_CANVAS_HANDLE (item), a1, a2);
gimp_canvas_handle_set_angles (GIMP_CANVAS_HANDLE (item),
start_angle, slice_angle);
gimp_draw_tool_add_item (draw_tool, item);
g_object_unref (item);

View File

@ -114,8 +114,8 @@ void gimp_draw_tool_draw_arc (GimpDrawTool *draw_tool,
gdouble y,
gdouble width,
gdouble height,
gint angle1,
gint angle2);
gdouble start_angle,
gdouble slice_angle);
void gimp_draw_tool_draw_arc_by_anchor (GimpDrawTool *draw_tool,
gboolean filled,
@ -123,8 +123,8 @@ void gimp_draw_tool_draw_arc_by_anchor (GimpDrawTool *draw_tool,
gdouble y,
gint width,
gint height,
gint angle1,
gint angle2,
gdouble start_angle,
gdouble slice_angle,
GtkAnchorType anchor);
void gimp_draw_tool_draw_handle (GimpDrawTool *draw_tool,

View File

@ -114,7 +114,7 @@ gimp_ellipse_select_tool_draw (GimpDrawTool *draw_tool)
FALSE,
x1, y1,
x2 - x1, y2 - y1,
0, 360 * 64);
0.0, 2 * G_PI);
}
static void

View File

@ -614,7 +614,8 @@ gimp_foreground_select_tool_draw (GimpDrawTool *draw_tool)
gimp_draw_tool_draw_arc (draw_tool, FALSE,
x - radius, y - radius,
2 * radius, 2 * radius, 0, 360 * 64);
2 * radius, 2 * radius,
0.0, 2.0 * G_PI);
}
else
{

View File

@ -663,7 +663,6 @@ gimp_measure_tool_draw (GimpDrawTool *draw_tool)
GimpMeasureTool *measure = GIMP_MEASURE_TOOL (draw_tool);
GimpTool *tool = GIMP_TOOL (draw_tool);
gint i;
gint angle1, angle2;
gint draw_arc = 0;
for (i = 0; i < measure->num_points; i++)
@ -711,15 +710,16 @@ gimp_measure_tool_draw (GimpDrawTool *draw_tool)
if (measure->num_points > 1 && draw_arc == measure->num_points - 1)
{
angle1 = measure->angle2 * 64.0;
angle2 = (measure->angle1 - measure->angle2) * 64.0;
gdouble angle1 = measure->angle2 / 180.0 * G_PI;
gdouble angle2 = (measure->angle1 - measure->angle2) / 180.0 * G_PI;
if (angle2 > 11520)
angle2 -= 23040;
if (angle2 < -11520)
angle2 += 23040;
if (angle2 > G_PI)
angle2 -= 2.0 * G_PI;
if (angle2 != 0)
if (angle2 < -G_PI)
angle2 += 2.0 * G_PI;
if (angle2 != 0.0)
{
gimp_draw_tool_draw_arc_by_anchor (draw_tool,
FALSE,

View File

@ -313,22 +313,22 @@ gimp_rectangle_select_tool_draw (GimpDrawTool *draw_tool)
gimp_draw_tool_draw_arc (draw_tool, FALSE,
x1, y1,
square_size, square_size,
90 * 64, 90 * 64);
G_PI / 2.0, G_PI / 2.0);
gimp_draw_tool_draw_arc (draw_tool, FALSE,
x2 - square_size, y1,
square_size, square_size,
0, 90 * 64);
0.0, G_PI / 2.0);
gimp_draw_tool_draw_arc (draw_tool, FALSE,
x2 - square_size, y2 - square_size,
square_size, square_size,
270 * 64, 90 * 64);
G_PI * 1.5, G_PI / 2.0);
gimp_draw_tool_draw_arc (draw_tool, FALSE,
x1, y2 - square_size,
square_size, square_size,
180 * 64, 90 * 64);
G_PI, G_PI / 2.0);
}
gimp_rectangle_tool_draw (draw_tool);