rough-stuff / rough

Create graphics with a hand-drawn, sketchy, appearance
http://roughjs.com
MIT License
19.9k stars 616 forks source link

`atan` versus `atan2` #166

Open SheetJSDev opened 4 years ago

SheetJSDev commented 4 years ago

Both dashed and zigzag use Math.atan:

      const alpha = Math.atan((p2[1] - p1[1]) / (p2[0] - p1[0]));

It would seem that a generated vertical line would cause errors. Is there a reason for preferring this over the safer atan2 alternative?

      const alpha = Math.atan2((p2[1] - p1[1]), (p2[0] - p1[0]));
pshihn commented 4 years ago

You're correct atan2 would be the better option here, because I don't check for the denominator to be nonzero.

pshihn commented 4 years ago

I think I have been getting away with it because it is unlikely in zigzag lines, and the randomness in the dashed lines.