Extend the current subpath with an arc tangent to two lines.
The arc is from the circle with the given radius tangent to
both the line from the current end point to the vertex, and to
the line from the vertex to the given point. A straight line
will be added from the current end point to the first tangent
point (unless the current path is empty), then the shortest
arc from the first to the second tangent points will be added.
The second tangent point will become the new end point.
If the radius is large, these tangent points may fall outside
the line segments. The current transform at the time that this
is called will affect the passed in points and the arc.
If the current path was empty, this is equivalent to a move.
If the arc would be degenerate, it is equivalent to a line to
the vertex point. The radius must be non-negative.
If it is not, or if the current transform is not invertible,
this does nothing.
Note: To draw a polygon with rounded corners, call this once
for each vertex and pass the midpoint of the adjacent
edge as the second point; this works especially well for
rounded boxes.
voidarcTo(float v_x, float v_y, float x, float y, float r)
Extend the current subpath with an arc tangent to two lines.
The arc is from the circle with the given radius tangent to both the line from the current end point to the vertex, and to the line from the vertex to the given point. A straight line will be added from the current end point to the first tangent point (unless the current path is empty), then the shortest arc from the first to the second tangent points will be added. The second tangent point will become the new end point. If the radius is large, these tangent points may fall outside the line segments. The current transform at the time that this is called will affect the passed in points and the arc. If the current path was empty, this is equivalent to a move. If the arc would be degenerate, it is equivalent to a line to the vertex point. The radius must be non-negative. If it is not, or if the current transform is not invertible, this does nothing.
Note: To draw a polygon with rounded corners, call this once for each vertex and pass the midpoint of the adjacent edge as the second point; this works especially well for rounded boxes.