polar←{ ⍝ Polar from/to cartesian coordinates. pol_car←{ ⍝ polar from cartesian (default). radius←{(+⌿⍵*2)*0.5} ⍝ radius (pythagorus). angle←{ ⍝ phase angle. x y←⊂⍤¯1⊢⍵ ⍝ x and y coordinates. x0 xn←1 0=⊂0=x ⍝ points on/off y axis. atan←¯3○y÷x+x0 ⍝ arctan y÷x (avoiding y÷0). qne←(xn×atan)+x0×○0.5×2-×y ⍝ NE quadrant. nsw←○x<0 ⍝ NW and SW quadrants. qse←○2×(x>0)∧y<0 ⍝ SE quadrant. nsw+qse+qne ⍝ all quadrants. } (radius ⍵)lam angle ⍵ ⍝ (2,···) array of polar coordinates. } car_pol←{ ⍝ cartesian from polar. r ø←⊂⍤¯1⊢⍵ ⍝ radius and phase angle. (r×2○ø)lam r×1○ø ⍝ r×cos(ø), r×sin(ø). } lam←,[⎕IO-÷2] ⍝ laminate along new first axis. ⍺←1 ⍝ default polar from cartesian. ⍺=+1:pol_car ⍵ ⍝ polar from cartesian. ⍺=-1:car_pol ⍵ ⍝ cartesian from polar. } code_colours test script Back to: notes Back to: Workspaces