Java2D-图形备忘(Java多媒体).ppt

上传人:max****ui 文档编号:10971408 上传时间:2020-04-16 格式:PPT 页数:28 大小:864.50KB
返回 下载 相关 举报
Java2D-图形备忘(Java多媒体).ppt_第1页
第1页 / 共28页
Java2D-图形备忘(Java多媒体).ppt_第2页
第2页 / 共28页
Java2D-图形备忘(Java多媒体).ppt_第3页
第3页 / 共28页
点击查看更多>>
资源描述
Java2D 图形 大外软件学院 徐 主要内容 Java2D图形的坐标系统颜色Graphics2D类Java2D基本图形画笔的粗细 颜色和填充模式图形的旋转 Java2D图形的坐标系统 X轴 Y轴 0 0 RGB色彩模式 RGB色彩模式使用RGB模型为图像中每一个像素的RGB分量分配一个0 255范围内的强度值 0 0 0 是黑色 255 255 255 是白色 255 0 0 是纯红色 100 0 0 是暗红色 0 100 0 是暗绿色 0 0 100 是暗蓝色 50 50 50 是暗灰色 150 150 150 是亮一些的灰色 Color类 Java awt包下常量 Color YELLOW等构造方法 Color intr intg intb 构造函数 分别代表红绿蓝的参数0 255 Graphics2D类 表示当前绘画的上下文 即画笔 通过Graphics类 你可以画矩形 椭圆以及多边形 而Graphics2D增强了几何图形渲染概念 提供渲染任意几何图形的机制 与其类似使用Java2DAPI你能画出任意样式 任意宽度的线 使用任意的纹理来填充各种几何图形 Java2D基本图形 1 直线使用java awt geom包中的Line2D的子类Line2D Double创建一个直线对象 如 Line2Dline newLine2D Double 12 20 100 90 创建一条 12 20 到 100 90 直线对象 Java2D基本图形 2 矩形使用java awt geom包中的Rectangle2D Double类来创建一个矩形对象 如 Rectangle2Drect newRectangle2D Double 50 50 300 50 897 上述语句创建了一个左上角坐标是 50 50 宽是300 高是50 987的一个矩形对象 Java2D基本图形 3 圆角矩形使用java awt geom包中的RoundRectangle2D Double类来创建一个圆角矩形对象 RoundRectangle2Drect round newRoundRectangle2D Double 50 50 300 50 8 5 上述语句创建了一个左上角坐标是 50 50 宽是300 高是50 圆角的长轴和短轴分别为8和5的圆角矩形对象 Java2D基本图形 4 椭圆使用java awt geom包中的Ellipse2D Double类来创建一个椭圆对象 Ellipse2Dellipse newEllipse2D Double 50 30 300 50 练习 主体框架 publicclassShapeFrameextendsFrame ShapeCanvassc newShapeCanvas publicShapeFrame Strings super s setLayout newBorderLayout add sc BorderLayout CENTER setSize 1000 700 setVisible true addWindowListener newWindowAdapter publicvoidwindowClosing WindowEvente System exit 0 publicstaticvoidmain Stringargs ShapeFramepf newShapeFrame 图形处理 练习 画布和颜色 publicclassShapeCanvasextendsCanvas ShapeCanvas setBackground Color YELLOW publicvoidpaint Graphicsg 画图 练习 椭圆 publicvoidpaint Graphicsg Graphics2Dg2 Graphics2D g Ellipse2Dellipse newEllipse2D Double 20 30 400 200 g2 setColor Color green g2 draw ellipse 练习 其他图形 直线前两个参数是起始点 后两个参数是结束点Line2Dline newLine2D Double 70 30 70 10 g2 setColor Color red g2 draw line 矩形Rectangle2Drec newRectangle2D Double 100 100 200 400 g2 setColor Color ORANGE g2 draw rec g2 setColor Color gray g2 fill rec 圆角矩形RoundRectangle2Drrec newRoundRectangle2D Double 50 50 300 500 20 20 g2 setColor Color blue g2 draw rrec Java2D基本图形 5 绘制圆弧使用java awt geom包中的Arc2D Double类创建一个圆弧对象 Arc2Dellipse newArc2D Double 50 30 300 50 0 100 Arc PIE 上述语句创建了一个外接矩形的左上角坐标是 50 30 宽是300 高是50的起始角是0度终止角是100度的饼弧对象 其中 最后一个参数取值 Arc2D OPEN Arc2D CHORD Arc2D PIE决定弧是开弧 弓弧和饼弧 练习圆弧 弧度的特殊讲解Arc2Darc newArc2D Double 0 0 200 90 0 270 Arc2D OPEN 开弧g2 draw arc g2 fill arc arc setArc 100 0 90 90 0 270 Arc2D CHORD 弓弧g2 draw arc arc setArc 200 0 90 90 0 270 Arc2D PIE 饼弧g2 draw arc Java2D文字 7 文字Font类 newFont String字体 int风格 int字号 setFont Fontf 设置字体 当绘制文本时 Graphics对象用参数f指定的字体 drawString Strings intx inty 从参数x y指定的坐标位置处 从左向右绘制参数s指定的字符串 Java2D文字 Fontf1 newFont 隶书 Font BOLD 28 Fontf2 newFont ComicSansMS Font BOLD Font ITALIC 16 g2 setFont f1 g2 drawString 计算机 10 30 g2 setFont f2 g2 drawString Java 10 80 画笔粗细 BasicStroke类的成员 width这个参数最容易理解 表示线条的宽度cap只能取三个值 CAP BUTT CAP ROUNDorCAP SQUARE 表示不同的线端 join这个参数表示当两条线连接时 连接处的形状 可以取JOIN ROUND JOIN BEVEL orJOIN MITER三个值 默认端点使用CAP SQUARE 默认连接使用JOIN MITER 画笔粗细 画笔粗细 设置画笔宽度为3BasicStrokebs newBasicStroke 3 g2 setStroke bs 渐进填充 GradientPaint是Java2D中专门用来控制渐变的类 它提供了使用线性颜色渐变模式填充Shape的方法 其构造函数GradientPaint floatx1 floaty1 Colorcolor1 floatx2 floaty2 Colorcolor2 充分说明了它的作用 即从点 x1 y1 到点 x2 y2 进行渐变 渐进填充 渐变填充椭圆Ellipse2Dellipse newEllipse2D Double 20 30 400 200 GradientPaintgp newGradientPaint 20 30 Color red 200 100 Color green true true代表颜色循环g2 setPaint gp g2 fill ellipse 纹理填充 TexturePaint类平铺一个图像来填充图形 构造函数接收一个java awt image BufferedImage和一个Rectangle2D 把图像影射到矩形里 然后平铺矩形 建立一个BufferedImage来保存图像相对是更直接的方法 在BufferedImage的构造函数里制定长 宽 高 类型为BufferedImage TYPE INT RGB 然后调用createGraphics 方法得到一个Graphics2D 纹理填充 创建纹理BufferedImagebuffImage newBufferedImage 10 10 BufferedImage TYPE INT RGB 纹理区域的大小为10 10Graphics2Dgg buffImage createGraphics 得到缓冲区画笔gg setColor Color yellow gg fillRect 0 0 10 10 画缓冲区填充底色 黄色 gg setColor Color red gg fillOval 0 0 5 5 缓冲区左上1 4区域画红色填充圆gg setColor Color green gg fillOval 5 5 5 5 缓冲区右下1 4区域画绿色填充圆 创建结束 定义好的10 10的纹理拉伸到50 50大小 在填充椭圆TexturePaintmypaint newTexturePaint buffImage newRectangle 50 50 g2 setPaint mypaint 图形旋转 AffineTransform类来实现对图形的这些操作 1 首先使用AffineTransform类创建一个对象 AffineTransformtrans newAffineTransform 对象trans具有最常用的三个方法来实现对图形变换操作 图形旋转 translate doublea doubleb 将图形在x轴方向移动a个单位像素 y轴方向移动b个像素单位 a是正值时向右移动 负值是向左移动 b是正值时是向下移动 负值向上移动 scale doublea doubleb 将图形在x轴方向缩放a倍 y轴方向缩放b倍 rotate doublenumber doublex doubley 将图形沿顺时针或逆时针以 x y 为轴点旋转number个弧度 图形旋转 2 进行需要的变换 比如要把一个矩形绕点 100 100 顺时针旋转60度 那么就要先作好准备 trans rotate 60 0 3 1415927 180 100 100 3 把Graphics对象 比如g2设置为具有trans这种功能的 画笔 g2 setTransform trans
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!