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 ___________________________________________________________________________________