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 <mse...@telus.net> wrote:
>
> 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
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : https://contextgarden.net
___________________________________________________________________________________

Reply via email to