Cleanup helper scripts. Closes #7
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
const fs = require('fs');
|
||||
|
||||
const d2 = 12.9;
|
||||
const l1 = 85;
|
||||
const l2 = 110;
|
||||
|
||||
function stepsToRad(steps) {
|
||||
return (steps / 2048) * 2 * Math.PI;
|
||||
}
|
||||
|
||||
function render(steps1, steps2) {
|
||||
const t1 = stepsToRad(steps1);
|
||||
const t2 = stepsToRad(steps2);
|
||||
|
||||
const e1x = -d2 + l1 * Math.cos(t1);
|
||||
const e1y = l1 * Math.sin(t1);
|
||||
|
||||
const e2x = d2 + l1 * Math.cos(t2);
|
||||
const e2y = l1 * Math.sin(t2);
|
||||
|
||||
const dx = e2x - e1x;
|
||||
const dy = e2y - e1y;
|
||||
const dist = Math.sqrt(dx*dx + dy*dy);
|
||||
|
||||
let endX = 0, endY = 0;
|
||||
if (dist <= 2*l2 && dist >= 1e-6) {
|
||||
const a = dist / 2;
|
||||
const h = Math.sqrt(l2*l2 - a*a);
|
||||
const mx = (e1x + e2x) / 2;
|
||||
const my = (e1y + e2y) / 2;
|
||||
const px1 = mx + h * (dy / dist);
|
||||
const py1 = my + h * (-dx / dist);
|
||||
const px2 = mx - h * (dy / dist);
|
||||
const py2 = my - h * (-dx / dist);
|
||||
if (py1 >= py2) { endX = px1; endY = py1; }
|
||||
else { endX = px2; endY = py2; }
|
||||
}
|
||||
|
||||
console.log(`steps1=${steps1}, steps2=${steps2}`);
|
||||
console.log(`t1=${(t1*180/Math.PI).toFixed(1)}°, t2=${(t2*180/Math.PI).toFixed(1)}°`);
|
||||
console.log(`e1=(${e1x.toFixed(1)}, ${e1y.toFixed(1)})`);
|
||||
console.log(`e2=(${e2x.toFixed(1)}, ${e2y.toFixed(1)})`);
|
||||
console.log(`end=(${endX.toFixed(1)}, ${endY.toFixed(1)})`);
|
||||
}
|
||||
|
||||
render(854, 41);
|
||||
render(-41, 967);
|
||||
Reference in New Issue
Block a user