第7章图形图像和多媒体.ppt
《第7章图形图像和多媒体.ppt》由会员分享,可在线阅读,更多相关《第7章图形图像和多媒体.ppt(44页珍藏版)》请在三一办公上搜索。
1、图形、图象与多媒体,本章重点 设置字型 设置颜色 几何图形绘制方法 图像显示技术基础,绘图基础,基本图形包括点、线、圆、矩形等,是构成复杂图形的基础。绘制基本图形要使用AWT中的Graphics类,它提供了各种基本图形的绘制方法,可以直接引用这些方法。确定平面坐标系,坐标原点(0,0)位于整个区域的左上角。一个坐标点对应屏幕上的一个像素,必须是整数。,Graphics类的基本功能,java.awt包中的Graphics提供建立字体、设定颜色、显示图像、文本、绘制和填充各种图形的功能。Graphics2D类继承Graphics提供更多的状态和属性,使应用程序能绘制出更加丰富多彩的图形。要在某个组
2、件中绘图,需要在这个组件所属的类中重写paint()方法,在该方法中绘图。如果要在JComponent子类的组件中绘图,则需重写paintComponent()方法,自型和颜色,绘制文本的方法有三种:在指定的位置绘制字符串drawString(String str,int x,int y)g.drawString(中国Wxyz,10,60);,10,60,字型和颜色,文字字型有三个要素:字体(name)、风格(style)、字号(size)字体:宋体,黑体,Times New Roman等风格:Font.PLAIN(正常),Font.BOLD(粗体),Font.ITALIC(斜体),Font.
3、BOLD+Font.ITALIC字号:整数,单位是磅Java中Font类的对象代表字体 Font font=new Font(“宋体”,Font.PLAIN,12);绘图时使用Graphics对象的setFont方法设置字体,字型和颜色,Java中使用Color类设置颜色,生成颜色的方法有两种。使用预定义的颜色:Color.RED,Color.YELLOW等通过红绿蓝(RGB)的值合成颜色,例如使用3个0-255的整数创建对象 Color c=new Color(255,0,0);绘图时使用Graphics对象的setColor()方法设置颜色,使用Component对象的setBackgro
4、und()方法设置背景色。,绘图模式,绘图模式指绘制的图形与之前绘制的图形有重叠时,重叠部分的颜色如何确定。正常模式:后绘制的图形覆盖原先的图形。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)
5、;g.setColor(Color.YELLOW);g.fillRect(10,10,100,50);,XOR绘图模式,setBackground(Color.yellow);/设此颜色为Bg.setXORMode(Color.red);/设此颜色为Cg.setColor(Color.green);/设此颜色为D规则1:用背景色画图出现设置的颜色CB+B=CsetBackground(Color.yellow);g.setXORMode(Color.red);g.setColor(Color.YELLOW);g.fillRect(20,20,80,40);,红色,XOR绘图模式,规则2:一个图
6、形重画时会清除原有图形D+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绘图模式,规则3:背景色和绘图颜色不一样时,为两者的混合色B+D=B和D的混合色setBackground(Color.yellow);g.setXORMode(Color.red);g.setColor(Color.BLUE);g.fillRect(20,20,80,40);,黄+蓝,XOR绘图模式,规则
7、4:某区已经用D着色,再用E着色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)普通矩形drawRect(intx,inty,intwidth,intheight)用线框围起来的矩形fillRect(in
8、tx,inty,intwidth,int height)填充矩形圆角矩形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)填充圆角矩形 如果后四个参数相等,画出来的是圆形。,Graphics的绘图方法,三维矩形draw3DRect(intx,inty,intwidth,intheight,booleanraised)fill3DRect(intx,inty,intw
9、idth,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的矩形的内切椭圆。,Graphics的绘图方法,画圆弧drawArc(intx,inty,intwidth,intheight,intstartAngle,intarcAngle)fillArc(intx,inty,intwidth,inthei
10、ght,intstartAngle,intarcAngle)得到的弧由 startAngle 开始,并以当前颜色转 arcAngle 度。角度的 0度位于 3点钟位置。正值指示逆时针旋转,负值则指示顺时针旋转。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,90,90);,Graphics的绘图方法,画多边形drawPolygon(intxPoints
11、,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的绘图方法,使用Polygon类创建多边形。Polygon p=new Polygon();p.addPoint(50,10);p.addPoint(90,50);p.addPoint(10,50);p.addPoint(50,10);g.fillPolygon(p)
12、;,(50,10),(90,50),(10,50),Graphics的绘图方法,擦除矩形块用背景色填充一个矩形块,相当于擦除矩形块位置的图形clearRect(intx,inty,intwidth,intheight),(50,10),(90,50),(10,50),int px1=50,90,10,50;int py1=10,50,50,10;g.fillPolygon(px1,py1,4);g.clearRect(35,30,15,15);,clipRect,限定作图显示区域,区域内的图形可以显示clipRect(intx,inty,intwidth,intheight),g.setCol
13、or(Color.YELLOW);g.fillRect(10,10,100,100);,g.clipRect(20,20,50,50);g.setColor(Color.YELLOW);g.fillRect(10,10,100,100);,复制图形,copyArea(intx,inty,intwidth,intheight,intdx,intdy)x-源矩形的 x 坐标。y-源矩形的 y 坐标。width-源矩形的宽度。height-源矩形的高度。dx-水平偏移,右为正,左为负dy-垂直偏移,下为正,上为负,g.setColor(Color.YELLOW);g.fillRect(0,0,100
14、,100);g.setColor(Color.red);g.drawRect(30,30,50,50);g.copyArea(30,30,50,50,100,100);,paint,repaint,update方法,paint:应该绘制组件的内容时调用此方法;组件第一次在屏幕上显示,组件的大小改变了,部件显示的内容受损需要维护。(比如,先前挡住组件的其它物体移走了,于是组件被挡住的部分曝露出来)repaint:对于重量级组件(JFrame,JApplet,JDialog和awt组件),先调用update方法,在update方法中实现部分图形的修改,然调用paint方法。对于轻量级(JCompo
15、nent的子孙)组件调用paint方法,Graphics2D类的绘图方法,java.awt.Graphics2D拥有更强大二维的图形处理能力,提供坐标变换、颜色管理以及文字布局等更精确的控制。public abstract class Graphics2D extends Graphics,Stroke属性,Stroke属性控制线条的宽度,笔形的样式,线段连接方式或短划线图案。该属性的设置需要创建BasicStroke对象,再调用setStroke()方法来设置。,cap样式:,join样式:,public void paint(Graphics g)Graphics2D g2d=(Graph
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图形图像 多媒体

链接地址:https://www.31ppt.com/p-5931083.html