机械原理中经典的曲柄摇杆机构的几何模型如下,其中杆oa是绕着o点旋转,ab连接oa和bc,bc是摇杆,绕着c点摇动。
a *-------- * b
/ \
/ \
/ \
o+ + c
设oa长L,当oa旋转,则点a的坐标为:
x_a=Lcos(si)
y_a=Lsin(si)
设ab长为r,bc长为R
c点坐标固定即已知,则求b点坐标转化为
求圆M(圆心a,半径r)和圆N(圆心c,半径R)的交点b。
计算出ac长度为S,以a为坐标系原点,ac为x轴,垂直ac的轴为y轴可以由向量计算
x方向向量 vec2 x = (c-a).normalize()
y方向向量 vec2 y = vec2(-x(1), x(0) )
* b
y / \
| / \
|/ \
a* * * c ->x
d
ac长s,ab长r,bc长R,由余弦定理 得到角b-a-c设为角A,则:
cos(A) = (r * r + s * s - R * R)/(2 * r * s)
d是b在x上的垂足,设ad长m,则:
m= cos(A) * s
设db长为n,则:
n= sqrt(s * s - m * m)
则 ad = x * m,db=y * n
接着求出:
b = a + ad + db
b还有个相对x轴的镜像点b’ = a + ad - db
这要根据运动中前一个b点坐标判断是选择点b还是b’ 。