先建一个圆柱,一个长方体作为杆,把长方体的中心轴移到一边的位置
点击放大
这个圆柱得截面半径最好设置为个整数,长方体的长,也最好是整数,有利于后面的表达式
再在长方体后面加以个场面体,并设置点约束
点击放大
开始创建表达式
表达式如下
点击放大
简单分析一下
圆柱旋转,是逆时针旋转到第二个位置,就形成了一个三角形。随着圆柱旋转a角度,长杆可以认为也旋转了b角度,同时x轴向想前位移了x 。由正弦定理,r,l 知道(已经测得)。a角度就是圆柱得旋转,所以b也知道了
float $a;
float $b;
$a=wheel.rotateZ;
$b=asind((sind ($a))/4 );
pole.rotateZ= -$b;
pole.translateX= 2*cosd ($a)-2;
$b=asind((sind ($a))/4 );
asind是求反三角函数,知道三角函数值,求角度
数学里写arcsin,多了一d,是说这里都是用角度制,不是弧度制
/4
是因为我的圆柱半径(r)是 2
长杆长度是 8
8*sin $b=2*sin $a
sin $b=(sin $a)/4
pole.rotateZ= -$b;
加以个负号,是因为,圆柱是逆时针旋转,而长杆正好相反
pole.translateX= 2*cosd ($a)-2;
这里pole.translateX等于图中得 绿色的 x
单也要家一个负号