同樣的問題要改用XY Graph來做?座標的計算控制程式碼可以完全相同直接套用。但XY Graph沒辦法畫出實心圓,只能畫出圓圈模擬那顆球


另外XY Graph的XY軸AutoScale自動功能要取消,修改成固定座標,這裡我的程式設定成X軸210,Y軸120

 

XY Graph格線設定為透明,使畫面看起來不會太雜亂

20131008-04  

 


程式同樣一開始先調用XY Graph元件屬性,計算繪圖區中心點,和移動座標的最大值,移動座標最大值由顯示區域最大值減球的半徑。XY Graph元件顯示的0點在左下角,最大值在右上角


同樣座標計算分成上下和左右2組,計算方法相同。一開始座標值加上移動量,在座標值大於等於移動座標最大值時,改成座標值減去移動量,在座標值小於等於球半徑值時,再改成座標值加上移動量。如此座標值反復變化,把球限制在Picture元件顯示範圍內


和Picture元件不同的是,XY Graph的圓形座標點要另外先算好,程式只是加減圓形座標點的XY軸值。這樣做的原因是圓形座標點的計算若包在程式迴圈內會拖垮程式效率,使球的移動變成停格分解動作


完成的程式

20131008-05  

 


同樣球是以45度斜角移動,若把程式改成上下和左右的移動量不同,球會以不同角度移動

20131008-06  

arrow
arrow
    文章標籤
    彈跳球
    全站熱搜

    未出師的小工程師 發表在 痞客邦 留言(0) 人氣()