《第7章圖形圖像和多媒體-java語言基礎(chǔ)自考教學課件》由會員分享,可在線閱讀,更多相關(guān)《第7章圖形圖像和多媒體-java語言基礎(chǔ)自考教學課件(45頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊鼠標編輯標題文的格式,單擊鼠標編輯大綱正文格式,第二個大綱級,第三個大綱級,第四個大綱級,第五個大綱級,第六個大綱級,第七個大綱級,第八個大綱級,第九個大綱級,圖形、圖象與多媒體,本章重點,設(shè)置字型,設(shè)置顏色,幾何圖形繪制方法,圖像顯示技術(shù)基礎(chǔ),圖形、圖象與多媒體本章重點,繪圖基礎(chǔ),基本圖形包括點、線、圓、矩形等,是構(gòu)成復(fù)雜圖形的基礎(chǔ)。繪制基本圖形要使用,AWT,中的,Graphics,類,它提供了各種基本圖形的繪制方法,可以直接引用這些方法。,確定平面坐標系,坐標原點(,0,,,0,)位于整個區(qū)域的左上角。一個坐標點對應(yīng)屏幕上的一個像素,必須是整數(shù)。,繪圖基礎(chǔ) 基本圖形包括點、線、圓、矩
2、形等,是構(gòu)成復(fù)雜圖形,Graphics,類的基本功能,java.awt,包中的,Graphics,提供建立字體、設(shè)定顏色、顯示圖像、文本、繪制和填充各種圖形的功能。,Graphics2D,類繼承,Graphics,提供更多的狀態(tài)和屬性,使應(yīng)用程序能繪制出更加豐富多彩的圖形。,要在某個組件中繪圖,需要在這個組件所屬的類中重寫,paint(),方法,在該方法中繪圖。,如果要在,JComponent,子類的組件中繪圖,則需重寫,paintComponent,(),方法,Graphics類的基本功能java.awt包中的Graph,自型和顏色,繪制文本的方法有三種:,在指定的位置繪制字符串,drawS
3、tring(String str,int x,int y),g.drawString(,中國,Wxyz,10,60);,10,60,自型和顏色繪制文本的方法有三種:1060,字型和顏色,文字字型有三個要素:字體,(name),、風格,(style),、字號,(size),字體:宋體,黑體,,Times New Roman,等,風格:,Font.PLAIN(,正常,),Font.BOLD(,粗體,),Font.ITALIC(,斜體,),,,Font.BOLD+Font.ITALIC,字號,:,整數(shù),單位是磅,Java,中,Font,類的對象代表字體,Font font=new Font(“,宋體
4、”,,Font.PLAIN,,,12);,繪圖時使用,Graphics,對象的,setFont,方法設(shè)置字體,字型和顏色文字字型有三個要素:字體(name)、風格(sty,字型和顏色,Java,中使用,Color,類設(shè)置顏色,生成顏色的方法有兩種。,使用預(yù)定義的顏色:,Color.RED,Color.YELLOW,等,通過紅綠藍,(RGB),的值合成顏色,例如使用,3,個,0-255,的整數(shù)創(chuàng)建對象,Color c=new Color(255,0,0);,繪圖時使用,Graphics,對象的,setColor(),方法設(shè)置顏色,使用,Component,對象的,setBackground(),
5、方法設(shè)置背景色。,字型和顏色Java中使用Color類設(shè)置顏色,生成顏色的方法,繪圖模式,繪圖模式指繪制的圖形與之前繪制的圖形有重疊時,重疊部分的顏色如何確定。,正常模式:后繪制的圖形覆蓋原先的圖形。,setPaintMode,(),異或模式:將正要繪圖的顏色、原先圖形的顏色和設(shè)定的顏色做特定的運算,得到實際的繪圖顏色。,setXORMode,(),g.setColor(Color.,BLUE,);,g.drawString(dsbdsfsfs,20,50);,g.setColor(Color.,YELLOW,);,g.fillRect(10,10,100,50);,g.setColor(Co
6、lor.,BLUE,);,g.drawString(dsbdsfsfs,20,50);,g.setColor(Color.,YELLOW,);,g.fillRect(10,10,100,50);,繪圖模式繪圖模式指繪制的圖形與之前繪制的圖形有重疊時,重疊部,XOR,繪圖模式,setBackground(Color.,yellow,);/,設(shè)此顏色為,B,g.setXORMode(Color.,red,);/,設(shè)此顏色為,C,g.setColor(Color.,green,);/,設(shè)此顏色為,D,規(guī)則,1,:用背景色畫圖出現(xiàn)設(shè)置的顏色,C,B+B=C,setBackground(Color.ye
7、llow);,g.setXORMode(Color.red);,g.setColor(Color.YELLOW);,g.fillRect(20,20,80,40);,紅色,XOR繪圖模式setBackground(Color.yel,XOR,繪圖模式,規(guī)則,2,:一個圖形重畫時會清除原有圖形,D+D=B,setBackground(Color.yellow);,g.setXORMode(Color.red);,g.setColor(Color.BLUE);,g.fillRect(20,20,80,40);,g.fillRect(20,20,80,40);,清除,XOR繪圖模式規(guī)則2:一個圖形重
8、畫時會清除原有圖形清除,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ī)則3:背景色和繪圖顏色不一樣時,為兩者的混合,XOR,繪圖模式,規(guī)則,4,:某區(qū)已經(jīng)用,D,著色,再用,E,著色,D+E=B,和,E,的混合色,(B,和,E,不同,),setBackground(Color.yellow);,g.setXO
9、RMode(Color.red);,g.setColor(Color.BLUE);,g.fillRect(20,20,80,40);,g.setColor(Color.GREEN);,g.fillRect(20,20,40,40);,黃,+,藍,+,綠,XOR繪圖模式規(guī)則4:某區(qū)已經(jīng)用D著色,再用E著色黃+藍+綠,Graphics,的繪圖方法,畫線段,drawLine(intx1,inty1,intx2,inty2),普通矩形,drawRect(intx,inty,intwidth,intheight),用線框圍起來的矩形,fillRect(intx,inty,intwidth,int hei
10、ght),填充矩形,圓角矩形,drawRoundRect(int x,int y,int width,int height,int arcW,int arcH),用線框圍起來的圓角矩形,fillRoundRect(int x,int y,int width,int height,int arcW,int arcH),填充圓角矩形,如果后四個參數(shù)相等,畫出來的是圓形。,Graphics的繪圖方法畫線段,Graphics,的繪圖方法,三維矩形,draw3DRect(intx,inty,intwidth,intheight,booleanraised),fill3DRect(intx,inty,in
11、twidth,intheight,booleanraised),raised,為,true,表示突出的,,false,是凹陷的,畫橢圓,drawOval(int x,int y,int width,int height),fillOval(int x,int y,int width,int height),畫以(,x,y,)為原點,即矩形的左上角,寬為,width,,高為,height,的矩形的內(nèi)切橢圓。,Graphics的繪圖方法三維矩形,Graphics,的繪圖方法,畫圓弧,drawArc(intx,inty,intwidth,intheight,intstartAngle,intarcA
12、ngle),fillArc(intx,inty,intwidth,intheight,intstartAngle,intarcAngle),得到的弧由,startAngle,開始,并以當前顏色轉(zhuǎn),arcAngle,度。角度的,0,度位于,3,點鐘位置。正值指示逆時針旋轉(zhuǎn),負值則指示順時針旋轉(zhuǎn)。,g.drawRect(5,5,100,50);,g.drawArc(5,5,100,50,0,360);,g.drawRect(5,5,100,50);,g.drawArc(5,5,100,50,0,-270);,g.drawRect(5,5,100,50);,g.drawArc(5,5,100,50,
13、90,90);,Graphics的繪圖方法畫圓弧,Graphics,的繪圖方法,畫多邊形,drawPolygon(intxPoints,intyPoints,intnPoints),fillPolygon(intxPoints,intyPoints,intnPoints),int px1=50,90,10,50;,int py1=10,50,50,10;,g.fillPolygon(px1,py1,4);,(,50,10,),(,90,50,),(,10,50,),Graphics的繪圖方法畫多邊形(50,10)(90,50,Graphics,的繪圖方法,使用,Polygon,類創(chuàng)建多邊形。,
14、Polygon p=new Polygon();,p.addPoint(50,10);,p.addPoint(90,50);,p.addPoint(10,50);,p.addPoint(50,10);,g.fillPolygon(p);,(,50,10,),(,90,50,),(,10,50,),Graphics的繪圖方法使用Polygon類創(chuàng)建多邊形。(,Graphics,的繪圖方法,擦除矩形塊,用背景色填充一個矩形塊,相當于擦除矩形塊位置的圖形,clearRect(intx,inty,intwidth,intheight),(,50,10,),(,90,50,),(,10,50,),int
15、 px1=50,90,10,50;,int py1=10,50,50,10;,g.fillPolygon(px1,py1,4);,g.clearRect(35,30,15,15);,Graphics的繪圖方法擦除矩形塊(50,10)(90,5,clipRect,限定作圖顯示區(qū)域,區(qū)域內(nèi)的圖形可以顯示,clipRect(intx,inty,intwidth,intheight),g.setColor(Color.YELLOW);,g.fillRect(10,10,100,100);,g.clipRect(20,20,50,50);,g.setColor(Color.YELLOW);,g.fill
16、Rect(10,10,100,100);,clipRect限定作圖顯示區(qū)域,區(qū)域內(nèi)的圖形可以顯示g.s,復(fù)制圖形,copyArea(intx,inty,intwidth,intheight,intdx,intdy),x-,源矩形的,x,坐標。,y-,源矩形的,y,坐標。,width-,源矩形的寬度。,height-,源矩形的高度。,dx-,水平偏移,右為正,左為負,dy-,垂直偏移,下為正,上為負,復(fù)制圖形copyArea(intx,inty,int,g.setColor(Color.YELLOW);,g.fillRect(0,0,100,100);,g.setColor(Color.red);,g.drawRect(30,30,50,50);,g.copyArea(30,30,50,50,100,100);,g.setColor(Color.YELLOW);,paint,,,repaint,,,update,方法,paint:,應(yīng)該繪制組件的內(nèi)容時調(diào)用此方法;,組件第一次在屏幕上顯示,組件的大小改變了,部件顯示的內(nèi)容受損需要維護。,(,比如,先前擋住組件的其它物體移走了,于是組件被擋