- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
j2d
j2d
java2D简单教程2008-09-06 09:23Shape 接口 第 1 页(共4 页)
java.awt.Shape 接口是一个代理,它描述几何形状的轮廓和特征。请参阅文档链接以获取至 Shape 接口、其它所有接口以及本章中所提及对象的 java 文档的链接。
实现该接口的对象必须提供 java.awt.geom.PathIterator 对象,该对象允许渲染程序一次一段地检索形状的路径。路径的每一段表示一条由渲染程序执行的绘制指令。可以将任何实现该接口的对象用作 Graphics2D 的 draw()、fill() 或 clip() 方法的参数。
所有 Shape 对象还必须为渲染程序提供有关如何构造几何形状的其它信息。有几种版本的 contains() 方法,如果指定的坐标或形状在 Shape 对象的边界以内,那么这些方法会返回值 true。intersects() 方法检查指定矩形中是否有任何区域与 Shape 重合。其它两种方法,getBounds() 和 getBounds2D(),返回一个边界矩形,该矩形表示包围 Shape 形状的最小矩形。
Shape 接口的一项重要特性在于:它被设计成通过变换、添加或减去形状来构造新 Shape 对象。高级功能中涵盖了这些主题。
预定义的形状 第 2 页(共4 页)
Java 2D 提供了一些预定义类,它们实现了 Shape 接口。实现一个实现了 Shape 接口的定制类实际上是不常见的(也是困难的),因为所提供的那些类几乎可以创建任何可以想象的形状。
新的 Java 2D Shape 类都有“2D”后缀。这些新的形状使用浮点值(而不是整数)来描述其几何形状。而且,Java 2D 之前的 Shape 类,诸如 Rectangle,现在继承了对应的 2D 类,这使得无须进行类型强制转换就能够更容易地转换到新的渲染引擎。
以下是 Java 2D API 中的新 Shape 类:
* Point2D、Dimension2D 和 Line2D:这些类提供对应标准类的浮点版本。因为类成员不可访问,所以这些版本需要使用取值(读)方法来检索值。
* QuadCurve2D 和 CubicCurve2D:这些类表示二次和三次“参变”曲线。将这些曲线实现成贝塞尔曲线,贝塞尔曲线由两个端点以及一个或两个控制点指定。贝塞尔曲线创建了适合于大多数表示的曲线。
* GeneralPath:它是一个 Shape 对象,该对象提供将片段连接成复杂几何形状的命令。它允许使用直线和贝塞尔曲线序列来构建图形,还允许用子路径来组成路径的片段。
Stroke 和 Paint 接口 第 3 页(共4 页)
这两个接口为 Java 2D 体系结构提供了一些十分强大的能力。Graphics2D 类描述了两种特性,Stroke 和 Paint,它们含有一些代理对象,这些对象描述了用来绘制和填充形状的虚拟笔和刷子。
Stroke 接口由 java.awt.BasicStroke 类实现。该类允许进行大量的选择以修改线的绘制细节。您可以指定 BasicStroke 宽度,也可以指定对名为柱头和交点的路径上端点和交点的“装饰”。现在也可以绘制点划线了,只须设置 BasicStroke 的破折号属性即可。
Paint 接口有几个具体的实现,它们允许用纯色、渐变色或图案来填充形状。对 java.awt.Color 类做了一些调整以实现 Paint,并且可以用于纯色填充。java.awt.GradientPaint 类允许用线性颜色渐变色来填充形状,线性颜色渐变色允许在两个指定的 Color 对象之间创建过渡。可以将渐变色设置成“周期性的”,这将导致渐变色图案重复出现。最后,还提供了 java.awt.TexturePaint 类,它用由 BufferedImage 描述的图案填充形状(请参阅缓冲的图像以获取更多信息)。
EllipseButton.java示例:椭圆按钮
字体支持
Java 2D 提供复杂文本输出能力。Java 2D 和一个重新设计的字体引擎支持使用属性集对字符串的单个字符进行操作。诸如透明度、颜色插值和抗锯齿之类的其它 Java 2D 功能也能用于字体处理。
字体渲染是一种高度复杂的机制,因为字体是由许多复杂的形状组成的,而这些形状被应用了很多几何变换。为了将渲染能力同图形环境以及字体渲染引擎分隔开来,使用了一个名为 java.awt.font.FontRenderContext 的类。该类封装了要正确地确定文本的可查看大小所需的信息。Graphics2D 提供了一种方法来根据图形环境的当前属性获取 FontRenderContext,也可以为离屏(off-
原创力文档


文档评论(0)