[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #65901] [gropdf] unable to render ellipse with dashed/dotted atribu
From: |
Deri James |
Subject: |
[bug #65901] [gropdf] unable to render ellipse with dashed/dotted atribute |
Date: |
Thu, 20 Jun 2024 13:01:28 -0400 (EDT) |
Follow-up Comment #1, bug #65901 (group groff):
After changing elipse to ellipse in the two code examples, I can't recreate
the first problem. The dots are visible in zathura. The issue with dashed is
real and is down to my appalling ability with maths. For dashed
ellipse/circles groff outputs each segment as an arc:-
Da h1 v1 h2 v2
Draw arc from current position to (h1,v1)+(h2 ,v2 ) with center at (h1,v1);
then
move the current position to the final point of the arc.
Postscript has an operator called arcn which grops uses:-
arcn
centerx centery radius angle1 angle2 arcn
-
clockwise
PDF on the other hand uses cubic bezier curves:-
x1 y1 x2 y2 x3 y3 c
Append a cubic Bézier curve to the current path. The curve extends
from the current point to the point (x3 , y3 ), using (x1 , y1 ) and
(x2 , y2 ) as the Bézier control points (see “Cubic Bézier Curves,” be-
low). The new current point is (x3 , y3 ).
So I have to calculate the control points for the curve. I suspect the
algorithm I am using for this ("borrowed" from
http://www.tinaja.com/glib/bezcirc2.pdf) is breaking down when a very small
arc actually describes a straight line.
As this is a maths problem it may take a while for me to sort out, but if a
proper mathematician can give me an algorithm to create a bezier from the arcn
parameters I can pinch code from grops. :-)
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?65901>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/