最復雜的應該是幾何問題。
我們設,輪是主動地,是勻速運動的,初始位置為水平向右,方向為正方向。
運動速率為Alhpa弧度美秒。
時刻t,L1與水平線的夾角為:t*Alhpa
以輪心為原點,建立直角坐標系。
那麽,L1和L2鉸接點的坐標就是(L1*cos(t*alhpa),L1*sin(t*alhpa)),表示為(X1,Y1)
剩下的問題,就是計算滑塊上的鉸接點的坐標了。
設這點的坐標是(x,e)
那麽有方程:
[x-L1*cos(t*alhpa)]*[x-L1*cos(t*alhpa)]+[L1*sin(t*alhpa)-e]*[L1*sin(t*alhpa)-e]=L2*L2
這個方程裏面只有x是未知數,是壹個典型的壹元二次方程,可以用公式法求解。舍棄小於L1與L2交接點橫坐標的壹個解,其余壹個就是我們的目標。
至此,任意時刻的位置,我們都可以確定了。
下面就是怎麽用vb來畫圖了。
這裏運動的有三件:L1、L2和滑塊。
不運動的有圓、圓軸、基準線、滑塊的移動平面。
不運動的,我們用窗體的方法line、Circle來實現(註意:滑塊的移動平面不要畫那麽高,畫到滑塊下面)。
移動的用兩個line控件和壹個shape控件來表示。
另外就是輔助的控件了,例如設置、開始、數據輸出等等這些就不說了,核心的輔助控件就是計時器。
設置好參數之後,在開始的地方
Me.Scale (-L1 - L1, L1 + L1 + e)-(L1 + L1 + L2, -L1 - L1)
line1.x2=0
line1.y2=0
shape.top=e+shape1.height/2
畫上不運動的部分。
在計時器的事件裏
1、計算當前角度
2、計算(x1,y1)
3、計算x
上面三個計算代碼妳自己寫。
line1.x1=x1
line1.y1=y1
line2.x1=x1
line2.y1=y1
line2.x2=x
line2.y2=e
shape1.left=x-shape1.width/2
如果還有問題,我們以後再討論。