Thank you, Max.
The angle function doesn't appear to provide the same calculation as
my atantwo in all cases.
https://pdfhost.io/v/Oqj7XmibJ_scaled
The shorter line segment should be directed towards the vertex closest
to the longer line segment. I tried using both:
theta := angle( dx, dy );
theta := angle( dy, dx );
Neither made a difference, in some cases the angle differs from what I'd expect.
My implementation is based on the first version given here:
https://en.wikipedia.org/wiki/Atan2#Definition_and_computation
I have something that works, so this is more of a curiosity as to
there being a difference between my implementation of atantwo and the
angle function.
Here's an example with many lines and the angle function:
https://pdfhost.io/v/1T4jgBnxh_scaled
On Wed, Oct 12, 2022 at 11:42 PM Max Chernoff
Hi,
How is atan2 called? I rolled my own as follows:
Is atan with two parameters supposed to behave like atan2?
At mp-math.mpxl:167 there is:
vardef atan primary x = angle(1,x) enddef ;
The MetaPost manual says:
The angle operator takes a pair and computes the two-argument arctangent; i.e., angle is the inverse of the dir operator
So it looks like "angle" is the function that you want for "atan2".
Thanks, -- Max