三角形是由3條線組成的,只需要用勾股定理計算出下次繪制出的三角形的三個點的位置,就是3條邊線交接的點,就可以了,然後再按點劃線。(java的API上有劃線的方法)
那麽現在的難題是已知當前三點位置,怎麽計算出下次需要繪制的三點位置,在此還需要清楚壹點,妳想要三角形旋轉,首先要確定壹個圓心,三角形圍繞這個圓心進行旋轉,所以三角形旋轉的話還需要壹個圓心。
定位好圓心後,那麽就開始計算,妳可以用筆在紙上畫壹下,以圓心和三個點進行連線,然後在畫三個圓(每隔圓的邊線都穿過三角形的壹個點),然後這三個點在三個圓上的旋轉的***同點是他們每次運動的角速度是壹樣的。
此時已有數據:三個點的位置、圓心位置、每次運動時,點改變的角度(也就是角速度),首先從壹個點開始計算,先取出這個點的X和Y坐標,算出這個點的X坐標與圓心X點的差和Y坐標的差,用勾股定理能求出當前點與水平線的的角度是多少,然後下次這個點的移動的角速度加上這個角度就可以算出下次移動後這個點與水平線的角度,而下次移動後畫出Y到圓心的水平線,X到圓心的垂直線的直角三角形後,斜邊就是圓心與這個點的距離,這樣就可以算出這個直角三角形的兩外兩個邊長,也就是該點與圓心的XY的差,這樣就算出了下次移動後,點的位置。
具體計算公式:
圓心(圓x,圓y)
三點的其中壹點(點x1,點y1)
移動角速度(角z)
點到圓心的x差為 圓x-點x1 (差x)
點到圓心的y差為 圓y-點y1 (差y)
// 計算圓心到點的距離(勾股定理:兩個直角邊的平方和=斜邊的平方)
距離L = Math.sqrt(差x*差x + 差y*差y);
// 計算當前點到圓心的線的水平角度 (3.14159是圓周率)
當前水平角度a = Math.atan(差y/差x)*180/3.14159 ;
// 計算下次點的x坐標
下次點的水平角度 = 當前水平角度a + 角z ;
下次點的x = Math.cos(下次點的角度)*距離L ;
下次點的y = Math.sin(下次點的角度)*距離L ;
最終下次重繪的時候把這個點的x和y的坐標改為計算出來的:下次點的x 和 下次點的y 就會發現三角形進行了旋轉。
累死我了,給加分啊,就算沒有知識費也得有辛苦費啊。