
Type: Bug

Status: Applied

Priority: Major

Resolution: Fixed

Affects Version/s: None

Fix Version/s: ODF 1.4

Component/s: None

Labels:None

Proposal:Hide
Command T
Name angleellipseto
Parameters (x y wR hR t0 t1) +
Description
Draws a line from the current point to the start point of an arc of an ellipse and then draws the arc itself. The ellipse is given by the center(x, y), the width 2*wR, and the height 2*hR.
The arc is specified by the startangle t0 in degrees and endangle t1 in degrees. The angles may be of any value, but are used modulo 360° with range 0° <= angle < 360° to get start and end point of the arc. The angles specify radial vectors. The start and end point of the arc are the intersection of these vectors with the ellipse. In case the start point equals the end point, only in case t1 − t0 = 360° a full ellipse is drawn, otherwise an arc of 0° central angle is drawn. The orientation of the angles is the same as in command G, see figure nnn.
The arc is drawn clockwise.
The end point becomes the new current point at the end of the command.
Command U
Name angleellipse
Parameters (x y wR hR t0 t1) +
Description
The same as the “T” command, except that no current point is required but an implicit moveto to the start point is done and thus no line to the start point is drawn.
ShowCommand T Name angleellipseto Parameters (x y wR hR t0 t1) + Description Draws a line from the current point to the start point of an arc of an ellipse and then draws the arc itself. The ellipse is given by the center(x, y), the width 2*wR, and the height 2*hR. The arc is specified by the startangle t0 in degrees and endangle t1 in degrees. The angles may be of any value, but are used modulo 360° with range 0° <= angle < 360° to get start and end point of the arc. The angles specify radial vectors. The start and end point of the arc are the intersection of these vectors with the ellipse. In case the start point equals the end point, only in case t1 − t0 = 360° a full ellipse is drawn, otherwise an arc of 0° central angle is drawn. The orientation of the angles is the same as in command G, see figure nnn. The arc is drawn clockwise. The end point becomes the new current point at the end of the command. Command U Name angleellipse Parameters (x y wR hR t0 t1) + Description The same as the “T” command, except that no current point is required but an implicit moveto to the start point is done and thus no line to the start point is drawn. 
Resolution:Hide
Editorial note: Coloured text has been inserted in resolution of
OFFICE3710. The Description of Command G has been inserted in resolution ofOFFICE4026. The Descriptions of Commands T and U have been modified in resolution ofOFFICE4027.Table 10  Enhanced path commands
Command Name Parameters Description A arcto (x1 y1 x2 y2 x3 y3 x4 y4) + (x1, y1) and (x2, y2) define the bounding box of an ellipse. A line is then drawn from the current point to the start angle of the arc that is specified by the radial vector of point (x3, y3) and then counterclockwise to the endangle that is specified by point (x4, y4). The intersection of the radial vector of point (x4, y4) with the ellipse becomes the new current point. B arc (x1 y1 x2 y2 x3 y3 x4 y4) + The same as the “A” command, except that an implied moveto to the starting point is done. C curveto (x1 y1 x2 y2 x y) + Draws a cubic Bézier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve. The point (x, y) becomes the new current point. F nofill (none) Specifies that the current set of subpaths will not be filled. L lineto (x y) + Draws a line from the current point to (x, y). If followed by multiple coordinate pairs, they are all interpreted as lineto. The point (x, y) becomes the new current point in each case. G arcangleto (wR hR st sw) + Draws an arc of an ellipse. The ellipse is given by the width 2*wR, and the height 2*hR. The arc is specified by the start angle st in degrees and the swing angle sw in degrees. The ellipse is positioned so that the current point is the start point of the arc. The arc is drawn so that sw is the central angle of the arc. If sw is positive, the arc is drawn clockwise; if sw is negative, the arc is drawn counterclockwise. The endpoint of the arc becomes the new current point.
In case the path is filled, the filling is drawn as an ellipse segment.
The swing angle may be greater than 360° and may be smaller than 360°. In such cases the fill will overlap.M moveto (x y) + Start a new subpath at the given (x,y) coordinate. If a moveto is followed by multiple pairs of coordinates, they are treated as lineto. The point (x, y) becomes the new current point in each case. N endpath (none) Ends the current set of subpaths. The subpaths will be filled by using the “evenodd” filling rule. Other following subpaths will be filled independently. The current point becomes undefined. Q quadraticcurveto (x1 y1 x y)+ Draws a quadratic Bézier curve from the current point to (x, y) using (x1, y1) as the control point. (x, y) becomes the new current point at the end of the command. S nostroke (none) Specifies that the current set of subpaths will not be stroked. T angleellipseto (x y wR hR t0 t1) + Draws a segment of an ellipse. The ellipse is specified by the center(x, y), the width 2*wR, the height 2*hR.
The arc is specified by the startangle t0 in degrees and endangle t1 in degrees. The angles may be of any value, but are used modulo 360° with range 0° <= angle < 360° to get start and end point of the arc. The angles specify radial vectors. The start and end point of the arc are the intersection of these vectors with the ellipse. In case the start point equals the end point, only in case t1 − t0 = 360° a full ellipse is drawn, otherwise an arc of 0° central angle is drawn. The orientation of the angles is the same as in command G, see figure nnn.
The segment is drawn clockwise.
The point of the ellipse, which is specified by the endangle t1 becomes the new current point.U angleellipse (x y wR hR t0 t1) + The same as the “T” command, except that no current point is required but an implied moveto to the starting point is done and thus no line to the start point is drawn.. V clockwisearc (x1 y1 x2 y2 x3 y3 x4 y4)+ The same as the “A” command, except that an implied moveto to the starting point is done and the arc is drawn clockwise. W clockwisearcto (x1 y1 x2 y2 x3 y3 x4 y4) + The same as the “A” command except, that the arc is drawn clockwise. X ellipticalquatrantx (x y) + Draws a quarter ellipse, whose initial segment is tangential to the xaxis from the current point to (x, y). For each additional quarter ellipse command, the axis to which the segment is tangential to switches from x to y and from y to x. The point (x, y) becomes the new current point in each case. Y ellipticalquadranty (x y) + Draws a quarter ellipse, whose initial segment is tangential to the yaxis from the current point to (x, y). For each additional quarter ellipse command, the axis to which the segment is tangential to switches from y to x and from x to y. The point (x, y) becomes the new current point in each case. Z closepath (none) Close the current subpath by drawing a straight line from the current point to current subpath's initial point. The path’s initial point becomes the new current point. If the value of the draw:enhancedpath attribute does not follow the specified syntax, the behavior is undefined. This includes the case, that a command expects a current point, but the current point is undefined.
Note: The value of the draw:enhancedpath attribute is based upon [SVG] §8.3.
ShowEditorial note : Coloured text has been inserted in resolution of OFFICE3710 . The Description of Command G has been inserted in resolution of OFFICE4026 . The Descriptions of Commands T and U have been modified in resolution of OFFICE4027 . Table 10  Enhanced path commands Command Name Parameters Description A arcto (x1 y1 x2 y2 x3 y3 x4 y4) + (x1, y1) and (x2, y2) define the bounding box of an ellipse. A line is then drawn from the current point to the start angle of the arc that is specified by the radial vector of point (x3, y3) and then counterclockwise to the endangle that is specified by point (x4, y4). The intersection of the radial vector of point (x4, y4) with the ellipse becomes the new current point. B arc (x1 y1 x2 y2 x3 y3 x4 y4) + The same as the “A” command, except that an implied moveto to the starting point is done. C curveto (x1 y1 x2 y2 x y) + Draws a cubic Bézier curve from the current point to (x,y) using (x1,y1) as the control point at the beginning of the curve and (x2,y2) as the control point at the end of the curve. The point (x, y) becomes the new current point. F nofill (none) Specifies that the current set of subpaths will not be filled. L lineto (x y) + Draws a line from the current point to (x, y). If followed by multiple coordinate pairs, they are all interpreted as lineto. The point (x, y) becomes the new current point in each case. G arcangleto (wR hR st sw) + Draws an arc of an ellipse. The ellipse is given by the width 2*wR, and the height 2*hR. The arc is specified by the start angle st in degrees and the swing angle sw in degrees. The ellipse is positioned so that the current point is the start point of the arc. The arc is drawn so that sw is the central angle of the arc. If sw is positive, the arc is drawn clockwise; if sw is negative, the arc is drawn counterclockwise. The endpoint of the arc becomes the new current point. In case the path is filled, the filling is drawn as an ellipse segment. The swing angle may be greater than 360° and may be smaller than 360°. In such cases the fill will overlap. M moveto (x y) + Start a new subpath at the given (x,y) coordinate. If a moveto is followed by multiple pairs of coordinates, they are treated as lineto. The point (x, y) becomes the new current point in each case. N endpath (none) Ends the current set of subpaths. The subpaths will be filled by using the “evenodd” filling rule. Other following subpaths will be filled independently. The current point becomes undefined. Q quadraticcurveto (x1 y1 x y)+ Draws a quadratic Bézier curve from the current point to (x, y) using (x1, y1) as the control point. (x, y) becomes the new current point at the end of the command. S nostroke (none) Specifies that the current set of subpaths will not be stroked. T angleellipseto (x y wR hR t0 t1) + Draws a segment of an ellipse. The ellipse is specified by the center(x, y), the width 2*wR, the height 2*hR. The arc is specified by the startangle t0 in degrees and endangle t1 in degrees. The angles may be of any value, but are used modulo 360° with range 0° <= angle < 360° to get start and end point of the arc. The angles specify radial vectors. The start and end point of the arc are the intersection of these vectors with the ellipse. In case the start point equals the end point, only in case t1 − t0 = 360° a full ellipse is drawn, otherwise an arc of 0° central angle is drawn. The orientation of the angles is the same as in command G, see figure nnn. The segment is drawn clockwise. The point of the ellipse, which is specified by the endangle t1 becomes the new current point. U angleellipse (x y wR hR t0 t1) + The same as the “T” command, except that no current point is required but an implied moveto to the starting point is done and thus no line to the start point is drawn.. V clockwisearc (x1 y1 x2 y2 x3 y3 x4 y4)+ The same as the “A” command, except that an implied moveto to the starting point is done and the arc is drawn clockwise. W clockwisearcto (x1 y1 x2 y2 x3 y3 x4 y4) + The same as the “A” command except, that the arc is drawn clockwise. X ellipticalquatrantx (x y) + Draws a quarter ellipse, whose initial segment is tangential to the xaxis from the current point to (x, y). For each additional quarter ellipse command, the axis to which the segment is tangential to switches from x to y and from y to x. The point (x, y) becomes the new current point in each case. Y ellipticalquadranty (x y) + Draws a quarter ellipse, whose initial segment is tangential to the yaxis from the current point to (x, y). For each additional quarter ellipse command, the axis to which the segment is tangential to switches from y to x and from x to y. The point (x, y) becomes the new current point in each case. Z closepath (none) Close the current subpath by drawing a straight line from the current point to current subpath's initial point. The path’s initial point becomes the new current point. If the value of the draw:enhancedpath attribute does not follow the specified syntax, the behavior is undefined. This includes the case, that a command expects a current point, but the current point is undefined. Note: The value of the draw:enhancedpath attribute is based upon [SVG] §8.3.
The word "segment of ellipse" is misleading. No application draws a segment, but all draw an arc, and in case of filling, a filling in shape of a sector.
The meaning of the angles it not clear. Examples: t0=0, t1=360 generates a full ellipse in applications. What rendering is expected for t0=10, t1=350 (negative values), or for t0=350, t1=240 (start > end), of for t0=30, t1=480 (difference > 360) ?