June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
37
Task/Averages-Mean-angle/Ring/averages-mean-angle.ring
Normal file
37
Task/Averages-Mean-angle/Ring/averages-mean-angle.ring
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
# Project : Averages/Mean angle
|
||||
# Date : 2018/01/08
|
||||
# Author : Gal Zsolt (~ CalmoSoft ~)
|
||||
# Email : <calmosoft@gmail.com>
|
||||
|
||||
load "stdlib.ring"
|
||||
decimals(6)
|
||||
pi = 3.1415926535897
|
||||
angles = [350,10]
|
||||
see meanangle(angles, len(angles)) + nl
|
||||
angles = [90,180,270,360]
|
||||
see meanangle(angles, len(angles)) + nl
|
||||
angles = [10,20,30]
|
||||
see meanangle(angles, len(angles)) + nl
|
||||
|
||||
func meanangle(angles, n)
|
||||
sumsin = 0
|
||||
sumcos = 0
|
||||
for i = 1 to n
|
||||
sumsin = sumsin + sin(angles[i]*pi/180)
|
||||
sumcos = sumcos + cos(angles[i]*pi/180)
|
||||
next
|
||||
return 180/pi*atan3(sumsin, sumcos)
|
||||
|
||||
func atan3(y,x)
|
||||
if x <= 0
|
||||
return sign(y)*pi/2
|
||||
ok
|
||||
if x>0
|
||||
return atan(y/x)
|
||||
else
|
||||
if y>0
|
||||
return atan(y/x)+pi
|
||||
else
|
||||
return atan(y/x)-pi
|
||||
ok
|
||||
ok
|
||||
Loading…
Add table
Add a link
Reference in a new issue