java Graphics2D 畫圖


在Java中,當需要畫一些特殊的形狀時,比如說橢圓、矩形等,可以使用 Graphics2D 來繪圖。

一些API:

g.drawLine(3,3,50,50);//畫一條線段
g.drawRect(80,100,40,25);//畫線框
g.drawOval(10,10,60,120);//畫橢圓

//畫多邊形
int px1[]={50,90,10,50};//首末點相重,才能畫多邊形 
int py1[]={10,50,50,10};
g.setColor(Color.blue);
g.fillPolygon(px1,py1,4);

關於畫圖的更多內容,可以參考網上的一些介紹,或者官方API。

Graphics2D 對象中有個函數是 translate(x,y),該函數的功能如下:

將橢圓的原點移動到 (x,y)。

 

該函數和 rotate函數結合使用,可以實現將一個圖形繞一個點旋轉。

g2.rotate(Math.PI * rotate / 180.0);   //注意該函數是繞着橢圓的原點旋轉

比如說,將一個水平的橢圓繞着橢圓的中心點旋轉一個角度,需要先將橢圓的原點移動到一個位置,然后再繞着新的原點旋轉,示意圖如下:

 

新原點的坐標可以根據水平狀態下原點的坐標以及旋轉的角度算出來。需要注意的是:先移動原點,然后再旋轉,順序不能亂。

示例代碼:

Graphics2D g2 = (Graphics2D)g.create();
g2.setColor(Color.red);
g2.translate(translateX, translateY);
g2.rotate(Math.PI * rotate / 180.0);
g2.drawOval(0, 0, ovalWidth - 1, ovalHeight - 1);
g2.translate(-translateX, -translateY);
g2.dispose();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM