June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
|
|
@ -1,18 +1,21 @@
|
|||
function sum(a) {
|
||||
s = 0;
|
||||
for (var i in a) s += a[i];
|
||||
var s = 0;
|
||||
for (var i = 0; i < a.length; i++) s += a[i];
|
||||
return s;
|
||||
}
|
||||
|
||||
function degToRad(a) {
|
||||
return Math.PI/180*a;
|
||||
return Math.PI / 180 * a;
|
||||
}
|
||||
|
||||
function meanAngleDeg(a) {
|
||||
return 180/Math.PI*Math.atan2(sum(a.map(degToRad).map(Math.sin))/a.length,sum(a.map(degToRad).map(Math.cos))/a.length);
|
||||
return 180 / Math.PI * Math.atan2(
|
||||
sum(a.map(degToRad).map(Math.sin)) / a.length,
|
||||
sum(a.map(degToRad).map(Math.cos)) / a.length
|
||||
);
|
||||
}
|
||||
|
||||
var a = [350, 10], b = [90, 180, 270, 360], c =[10, 20, 30];
|
||||
var a = [350, 10], b = [90, 180, 270, 360], c = [10, 20, 30];
|
||||
console.log(meanAngleDeg(a));
|
||||
console.log(meanAngleDeg(b));
|
||||
console.log(meanAngleDeg(c));
|
||||
|
|
|
|||
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
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
mata
|
||||
function meanangle(a) {
|
||||
return(arg(sum(exp(C(0,a)))))
|
||||
return(arg(sum(exp(C(0,a)))))
|
||||
}
|
||||
|
||||
deg=acos(-1)/180
|
||||
deg=pi()/180
|
||||
|
||||
meanangle((350,10)*deg)/deg
|
||||
-1.61481e-15
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue