Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Code refactoring: simple trig, but it's been so long.

by tachyon (Chancellor)
on Dec 30, 2004 at 02:08 UTC ( #418156=note: print w/ replies, xml ) Need Help??


in reply to Code refactoring: simple trig, but it's been so long.

Evidently you feel more comfortable using degrees rather than radians but the conversion to and from radians<->degrees serves no real purpose. Just define:

my $ninety_degrees = atan(1)*2;

You will get a division by zero crash in the case where $x and $y = 0 as it will fall through your 'extreme cases'. You can remove the dependency on a module by using radians and using a function for atan() like:

sub atan { return 0 if $_[0]==0; return $_[0] > 0 ? atan2(sqrt(1+$_[0]*$_[0]),sqrt(1+1/($_[0]*$_[0]))) : -atan2(sqrt(1+$_[0]*$_[0]),sqrt(1+1/($_[0]*$_[0]))); }

cheers

tachyon


Comment on Re: Code refactoring: simple trig, but it's been so long.
Select or Download Code
Re^2: Code refactoring: simple trig, but it's been so long.
by revdiablo (Prior) on Dec 30, 2004 at 04:27 UTC
    Evidently you feel more comfortable using degrees rather than radians but the conversion to and from radians<->degrees serves no real purpose.

    Yeah, that was just out of habit. I noticed that the conversion between radians and degrees was pointless before I posted, but never got around to changing it to only radians.

    You will get a division by zero crash in the case where $x and $y = 0 as it will fall through your 'extreme cases'.

    Ah, I hadn't noticed that. Using Zaxo's code will eliminate that problem, though. Many thanks.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://418156]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (6)
As of 2015-07-04 19:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (60 votes), past polls