Published
Edited
Aug 5, 2019
1 fork
2 stars
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
// Length of each link
len = ({
a: 10,
b: 15,
c: 20,
d: 20
})
Insert cell
Insert cell
A = ({x: 0, y: 0})
Insert cell
D = ({x: len.d, y: 0})
Insert cell
Insert cell
Insert cell
B = ({
x: len.a * Math.cos(theta),
y: len.a * Math.sin(theta)
})
Insert cell
Insert cell
Insert cell
Insert cell
C = {
const BD = Math.sqrt(len.a**2 + len.d**2 - 2 * len.a * len.d * Math.cos(theta));
const phi = Math.asin(len.a * Math.sin(theta) / BD);
const psi = Math.acos((len.b**2 + BD**2 - len.c**2) / (2 * len.b * BD));
return {
x: B.x + len.b * Math.cos(psi - phi),
y: B.y + len.b * Math.sin(psi - phi)
}
}
Insert cell
Insert cell
points = [A, B, C, D]
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more