June 2018 Update

This commit is contained in:
Ingy döt Net 2018-06-22 20:57:24 +00:00
parent ba8067c3b7
commit 22f33d4004
5278 changed files with 84726 additions and 14379 deletions

View file

@ -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));

View 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

View file

@ -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