當前位置:編程學習大全網 - 編程語言 - 如何讓用java繪制的三角形旋轉?

如何讓用java繪制的三角形旋轉?

其實讓java繪制的三角形旋轉很好做的,首先妳要明白,java不能繪制動態的東西,所有動態的東西全都是隔壹段時間擦掉以前的重新繪制壹個改變後的。

三角形是由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 就會發現三角形進行了旋轉。

累死我了,給加分啊,就算沒有知識費也得有辛苦費啊。

  • 上一篇:智慧醫療終端應用模型與仿真系統設計
  • 下一篇:針織花朵視頻教程
  • copyright 2024編程學習大全網