资源简介
计算机图形学,内含DDA画直线,画圆,直线裁剪,多边形裁剪,填充,三维透视,三维平移缩放,贝塞尔曲线,B样条曲线功能。

代码片段和文件信息
package graphicsTest;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Point2D;
import javax.swing.Jframe;
import javax.swing.JPanel;
public class Bezier extends JPanel implements MouseListenerMouseMotionListener{
private static final long serialVersionUID = 1L;
private Point2D[] controlPoint;
private Ellipse2D.Double[] ellipse;
private static final double SIDELENGTH = 8;
private int numPoints;
private double t=0.002;
public Bezier(){
numPoints = 0;
controlPoint = new Point2D[4];
ellipse = new Ellipse2D.Double[4];
this.addMouseListener(this);
this.addMouseMotionListener(this);
}
@Override
protected void paintComponent(Graphics g) {
// TODO Auto-generated method stub
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
g2.setColor(Color.MAGENTA);
for(int i=0; i if(i>0 && i<(numPoints-1)) {
g2.fill(ellipse[i]);
}else {
g2.draw(ellipse[i]);
}
if(numPoints>1 && i<(numPoints - 1))
g2.drawLine((int)controlPoint[i].getX() (int)controlPoint[i].getY() (int)controlPoint[i+1].getX() (int)controlPoint[i+1].getY());
}
if(numPoints == 4) {
double xy;
g2.setColor(Color.RED);
for(double k=t; k<=1+t; k+=t) {
x = (1-k)*(1-k)*(1-k)*controlPoint[0].getX() + 3*k*(1-k)*(1-k)*controlPoint[1].getX()
+ 3*k*k*(1-k)*controlPoint[2].getX() + k*k*k*controlPoint[3].getX();
y = (1-k)*(1-k)*(1-k)*controlPoint[0].getY() + 3*k*(1-k)*(1-k)*controlPoint[1].getY()
+ 3*k*k*(1-k)*controlPoint[2].getY() + k*k*k*controlPoint[3].getY();
// System.out.println(x + “ “ + y );
g2.drawLine((int)x (int)y (int)x (int)y);
}
}
}
@Override
public Dimension getPreferredSize() {
// TODO Auto-generated method stub
return new Dimension(600600);
}
public void startMain() {
Jframe f = new Jframe();
Bezier t2 = new Bezier();
f.add(t2);
f.pack();
f.setVisible(true);
f.setDefaultCloseOperation(Jframe.DISPOSE_ON_CLOSE);
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
if(numPoints <4) {
double x = e.getX();
double y = e.getY();
controlPoint[numPoints] = new Point2D.Double(x y);
Ellipse2D.Double current = new Ellipse2D.Double(x-SIDELENGTH/2 y-SIDELENGTH/2 SIDELENGTH SIDELENGTH);
ellipse[numPoints] = current;
numPoints++;
repaint();
}
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
private int find(Point2D p){
int flag = 5;
for(int i=0; i if( ellipse[i].contains(p)) {
flag = i;
return flag;
}
}
return flag;
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 226 2018-11-27 23:07 GraphicsTest\.classpath
文件 388 2018-11-27 23:07 GraphicsTest\.project
文件 46905 2018-11-30 01:14 GraphicsTest\background.jpg
文件 4134 2018-12-24 18:59 GraphicsTest\graphicsTest\Bezier.class
文件 3749 2018-12-24 18:33 GraphicsTest\graphicsTest\Bezier.java
文件 6427 2018-12-24 19:16 GraphicsTest\graphicsTest\BLine.class
文件 6538 2018-12-24 19:16 GraphicsTest\graphicsTest\BLine.java
文件 2135 2018-12-24 18:59 GraphicsTest\graphicsTest\DDAline$1.class
文件 2575 2018-12-24 18:59 GraphicsTest\graphicsTest\DDAline.class
文件 2918 2018-12-03 16:37 GraphicsTest\graphicsTest\DDAline.java
文件 1221 2018-12-24 19:16 GraphicsTest\graphicsTest\DeBoorCox.class
文件 370 2018-12-24 19:16 GraphicsTest\graphicsTest\Dot.class
文件 2577 2018-12-24 18:59 GraphicsTest\graphicsTest\DrawCircle$1.class
文件 3989 2018-12-24 18:59 GraphicsTest\graphicsTest\DrawCircle.class
文件 5325 2018-12-03 16:37 GraphicsTest\graphicsTest\DrawCircle.java
文件 2433 2018-12-24 18:59 GraphicsTest\graphicsTest\LineCutting$1.class
文件 3154 2018-12-24 18:59 GraphicsTest\graphicsTest\LineCutting.class
文件 3993 2018-11-29 23:47 GraphicsTest\graphicsTest\LineCutting.java
文件 961 2018-12-24 19:12 GraphicsTest\graphicsTest\Main$1.class
文件 985 2018-12-24 19:12 GraphicsTest\graphicsTest\Main$2.class
文件 905 2018-12-24 19:12 GraphicsTest\graphicsTest\Main$3.class
文件 970 2018-12-24 19:12 GraphicsTest\graphicsTest\Main$4.class
文件 978 2018-12-24 19:12 GraphicsTest\graphicsTest\Main$5.class
文件 1121 2018-12-24 19:12 GraphicsTest\graphicsTest\Main$6.class
文件 1124 2018-12-24 19:12 GraphicsTest\graphicsTest\Main$7.class
文件 970 2018-12-24 19:12 GraphicsTest\graphicsTest\Main$8.class
文件 926 2018-12-24 19:12 GraphicsTest\graphicsTest\Main$9.class
文件 4365 2018-12-24 19:12 GraphicsTest\graphicsTest\Main.class
文件 3689 2018-12-24 19:12 GraphicsTest\graphicsTest\Main.java
文件 633 2018-12-24 18:59 GraphicsTest\graphicsTest\Morph$1.class
............此处省略24个文件信息
- 上一篇:东北大学软件学院数据结构课程设计源代码
- 下一篇:shl试题汇总
相关资源
- SpringBoot+H2+mybatis-plus59130
- 登录注册界面.zip48872
- 数字华容道
- SSM+Shiro+redis实现单点登陆
- jstl-api-1.2和jstl-impl-1.2
- 基于MVC模式的会员管理系统
- 国内一家大型软件公司内部的正规软
- 仿windows记事本
- GUI银行管理系统
- 超市收银系统eclipse access大学课程设计
- 模拟ATM柜员机系统--连接数据库
- A*算法的2D演示(带源码)
- 代码审查表和代码审查实例
- 仿126 网易 163 邮箱 界面
- Tomcat6.x
- 简单的行编辑器
- 扫雷(MVC架构)
- 302 Found
- window ping命令加时间并记录日志
- springboot+rabbitmq项目demo(亲测可正常运
-
Temporal-ba
sed Multi-Strokes Sketchy Graphi - jxbrowser 所有版本通用的破解包
- 2017年-传智播客-张志君老师-SpringBoo
- Blob.js+Export2Excel.js
- 机会路由源代码+仿真工具(SCORP)
- POI中文帮助文档附带api手册.zip
- 2018双十一阿里供应链服务平台讲座
- Qt图片浏览器 --基于Qt的Graphics View f
- Mentor Graphics Expedition Enterprise v7.9.5.r
- Graphics Magic图像处理魔术师,含Delph
评论
共有 条评论