三次贝塞尔曲线

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

练习45 三次贝塞尔曲线

一、练习具体要求

本例制作二维图形三次贝塞尔曲线。效果如图45-1所示。执行本例实例后,将创建一个绘有三次贝塞尔曲线的帧。本实例的知识点有:Graphics2D 类和Rectangular 类的应用,曲线绘制的方法。

二、程序及注释

(1)编程思路: java2中Graphics2D 中绘图的第一步是用setColor(),setFont(),setPointMode ,setXORMODE()之类的方法制定绘图属性,第二步生成一个shape 接口的对象,指定要画的形体,第三步是绘图。绘制形体是用三个Graphics2D 方法完成的。Chip()方法将绘图区缩小到指定形体与当前剪接区的交接部分,影响后面的绘图操作。Draw()方法用当前Stroke 绘制Shape 的外形。Fill()方法用当前Point 模式填充Shape 。CubicCurve2D 类生成三次曲线,他与其他曲线类不同,不是描述闭合形体,而是描述曲线。曲线类用贝塞尔曲线定义曲线上的实际点。生成曲线后,应用Draw()或Fill()方法,可以把起点和终点看成相连接的,从而得到闭合区域。

(2) 程序实现及注释:

//ExitableJFrame.java

import javax.swing.*;

public class ExitableJFrame extends JFrame{

//构造函数

public ExitableJFrame(){

}

//带窗口标题的构造函数

public ExitableJFrame(String title){

super(title);

}

//窗口的初始化

本例

知识

一句话讲解新学

知识编写Graphics2D 类

绘制图形使用CubicCurve2D 类

绘制图形已学

知识使用Graphics 类

画屏幕图像使用String 类管理字符串

protected void frameInit(){

super.frameInit();

setDefaultCloseOperation(EXIT_ON_CLOSE);

}

}

//Cubic.java

import java.awt.*;

import java.awt.geom.*;

public class Cubic extends ExitableJFrame{

//画屏函数

public void paint(Graphics g){

//实例化Graphics2D类

Graphics2D g2d = (Graphics2D)g;

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,

RenderingHints.VALUE_ANTIALIAS_ON);

//设置颜色

g2d.setPaint(Color.blue);

g2d.setStroke(new BasicStroke(3));

//CubicCurve2D

CubicCurve2D cubic = new CubicCurve2D.Float(10,80,60,30,110,130,160,80);

g2d.draw(cubic);

cubic = new CubicCurve2D.Float(60,205,150,120,20,120,110,205);

g2d.fill(cubic);

cubic = new CubicCurve2D.Float(160,130,210,30,260,30,310,130);

g2d.fill(cubic);

cubic = new CubicCurve2D.Float(160,130,260,230,210,230,310,130);

g2d.fill(cubic);

//设置颜色

g.setColor(Color.black);

//填充颜色

g.fillRect(58,28,5,5);

g.fillRect(108,128,5,5);

g.fillRect(148,118,5,5);

g.fillRect(18,118,5,5);

g.fillRect(208,28,5,5);

g.fillRect(258,28,5,5);

g.fillRect(258,228,5,5);

g.fillRect(208,228,5,5);

}

//主函数

public static void main(String args[]){

Frame f = new Cubic();

f.setTitle("Cubic");

f.setSize(350,350);

f.show();

}

}

三、练习效果(如图45-1所示)

本实例代码编写完毕,分别存盘为:C: j2sdk1.4.0\javaprograms\ ExitableJFrame.java 和Cubic.java。打开计算机的命令提示符窗口,然后在命令提示符窗口中,定位到javaprograms目录,输入javac ExitableJFrame.java 和javac Cubic.java来编译程序,用java Cubic命令便可以看到制作效果。

图45-1练习效果

相关文档
最新文档