資源描述:
《圖形圖像和多媒體》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、圖形、圖象與多媒體本章重點設置字型設置顏色幾何圖形繪制方法圖像顯示技術基礎繪圖基礎基本圖形包括點、線、圓、矩形等,是構(gòu)成復雜圖形的基礎。繪制基本圖形要使用AWT中的Graphics類,它提供了各種基本圖形的繪制方法,可以直接引用這些方法。確定平面坐標系,坐標原點(0,0)位于整個區(qū)域的左上角。一個坐標點對應屏幕上的一個像素,必須是整數(shù)。Graphics類的基本功能java.awt包中的Graphics提供建立字體、設定顏色、顯示圖像、文本、繪制和填充各種圖形的功能。Graphics2D類繼承Graphics提供更多的狀態(tài)和屬性,使應用程序能繪制出更加豐富多彩的圖形。要在某個組件中繪圖,需
2、要在這個組件所屬的類中重寫paint()方法,在該方法中繪圖。如果要在JComponent子類的組件中繪圖,則需重寫paintComponent()方法自型和顏色繪制文本的方法有三種:在指定的位置繪制字符串drawString(Stringstr,intx,inty)g.drawString("中國Wxyz",10,60);1060字型和顏色文字字型有三個要素:字體(name)、風格(style)、字號(size)字體:宋體,黑體,TimesNewRoman等風格:Font.PLAIN(正常),Font.BOLD(粗體),Font.ITALIC(斜體),F(xiàn)ont.BOLD+Font.IT
3、ALIC字號:整數(shù),單位是磅Java中Font類的對象代表字體Fontfont=newFont(“宋體”,F(xiàn)ont.PLAIN,12);繪圖時使用Graphics對象的setFont方法設置字體字型和顏色Java中使用Color類設置顏色,生成顏色的方法有兩種。使用預定義的顏色:Color.RED,Color.YELLOW等通過紅綠藍(RGB)的值合成顏色,例如使用3個0-255的整數(shù)創(chuàng)建對象Colorc=newColor(255,0,0);繪圖時使用Graphics對象的setColor()方法設置顏色,使用Component對象的setBackground()方法設置背景色。繪圖模式
4、繪圖模式指繪制的圖形與之前繪制的圖形有重疊時,重疊部分的顏色如何確定。正常模式:后繪制的圖形覆蓋原先的圖形。setPaintMode()異或模式:將正要繪圖的顏色、原先圖形的顏色和設定的顏色做特定的運算,得到實際的繪圖顏色。setXORMode()g.setColor(Color.BLUE);g.drawString("dsbdsfsfs",20,50);g.setColor(Color.YELLOW);g.fillRect(10,10,100,50);g.setColor(Color.BLUE);g.drawString("dsbdsfsfs",20,50);g.setColor(Co
5、lor.YELLOW);g.fillRect(10,10,100,50);XOR繪圖模式setBackground(Color.yellow);//設此顏色為Bg.setXORMode(Color.red);//設此顏色為Cg.setColor(Color.green);//設此顏色為D規(guī)則1:用背景色畫圖出現(xiàn)設置的顏色CB+B=CsetBackground(Color.yellow);g.setXORMode(Color.red);g.setColor(Color.YELLOW);g.fillRect(20,20,80,40);紅色XOR繪圖模式規(guī)則2:一個圖形重畫時會清除原有圖形D+
6、D=BsetBackground(Color.yellow);g.setXORMode(Color.red);g.setColor(Color.BLUE);g.fillRect(20,20,80,40);g.fillRect(20,20,80,40);清除XOR繪圖模式規(guī)則3:背景色和繪圖顏色不一樣時,為兩者的混合色B+D=B和D的混合色setBackground(Color.yellow);g.setXORMode(Color.red);g.setColor(Color.BLUE);g.fillRect(20,20,80,40);黃+藍XOR繪圖模式規(guī)則4:某區(qū)已經(jīng)用D著色,再用E著色
7、D+E=B和E的混合色(B和E不同)setBackground(Color.yellow);g.setXORMode(Color.red);g.setColor(Color.BLUE);g.fillRect(20,20,80,40);g.setColor(Color.GREEN);g.fillRect(20,20,40,40);黃+藍+綠Graphics的繪圖方法畫線段drawLine(intx1,inty1,intx2,inty2