j5-delta
Version:
Johnny-Five component for controlling delta robots, based on tapsterbot.
41 lines (34 loc) • 1.11 kB
JavaScript
module.exports = {
reflectX: function(coords) {
return [ -coords[0], coords[1], coords[2] ];
},
reflectY: function(coords) {
return [ coords[0], -coords[1], coords[2] ];
},
rotate: function(coords, degrees) {
var radians = degrees * Math.PI / 180;
var x = coords[0] * Math.cos(radians) - coords[1] * Math.sin(radians);
var y = coords[1] * Math.cos(radians) + coords[0] * Math.sin(radians);
return [ x, y, coords[2] ];
},
mapAngles: function(angles, fromRange, toRange) {
return angles.map(function(angle) {
return ( angle - fromRange[0] ) * ( toRange[1] - toRange[0] ) / ( fromRange[1] - fromRange[0] ) + toRange[0];
});
},
roundAngles: function(angles, fromRange, toRange) {
return angles.map(function(angle) {
return Math.round( angle );
});
},
calcLargestMovement: function(newAngles, oldAngles) {
var largest = 0;
for (var i=0;i<newAngles.length;i++) {
var difference = Math.abs( newAngles[i] - oldAngles[i] );
if (difference > largest) {
largest = difference;
}
}
return largest;
}
};