1 父物体数据
父物体首先几何中心归于原点,然后测量出装配点1,其数据为(0.15,0.00,0.168);
//父物体添加连接group为孩子
ParentObj.add(ParentLinkChildGroup);
//设置连接group的位置,其数据为父物体安装点数据
ParentLinkChildGroup.position.set(0.15, 0.0, 0.168);
2 子物体数据
子物体首先几何中心归于原点,测量其尺寸,得其装配点1的数据数据(0.02,-0.08,-0.2328)。
//子物体位置为其装配点的数据的相反数。
childMesh.position.set(-0.02,0.08,0.2328);
//把子物体添加为连接group的孩子。
ParentLinkChildGroup.add(childMesh);
旋转时,需要区分所绕的数轴,下图为绕Z轴。
ParentLinkChildGroup.rotation.z+=Math.PI/180.0;
3 装配效果
4 三个点计算圆心的代码
def GetCenter(x1, y1, x2, y2, x3, y3):
"""圆上三个点求圆心坐标"""
a = x1 - x2;
b = y1 - y2;
c = x1 - x3;
d = y1 - y3;
e = ((x1*x1-x2*x2)-(y2*y2-y1*y1))/2;
f = ((x1*x1-x3*x3)-(y3*y3-y1*y1))/2;
# 圆心位置
x = (e*d - b*f)/(a*d - b*c)
y = (a*f - e*c)/(a*d - b*c)
return x,y;
#-----------------------
x1,y1=-0.770228, -0.172349
x2,y2=-0.594124, 0.003756
x3,y3=-0.578717, -0.172349
centerX, centerY = GetCenter(x1,y1,x2,y2,x3,y3)
print( "Center:%f,%f"%(centerX,centerY) )