资源简介
计算机图形学,内含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试题汇总
相关资源
- “图书信息管理系统”图书信息包括
- 蓝桥杯 练习系统所有题包括VIP题
- 需求规格说明书-新闻发布系统
- 基于SSH框架的BookShop网上书店实现
- 尚硅谷spring boot资源,带代码。
- Robocode 基础坦克胜率还可以
- swing实现的猫版聊天室
- 网站验证码代码的使用
- 防止Socket传递汉字乱码
- 操作系统模拟.rar
- 2019校园招聘算法笔试题
- 中科大数据结构与数据库课件
- 诺基亚S60通用模拟器
- 车辆管理系统.zip
- 全国银行省市支行级联最新
- 一个完整项目详细设计说明书
- 汇编十六进制排序
- 利用哈夫曼编码进行通信可以大大提
- 百度地图api-ak
- 基于vue开发的树形菜单
- dobbyscan一个非常快速基于密度的地理
- 几乎完整的前端面试问题答案
-
typesc
riptvue开发的日历组件使用swi - processing二维温度场
- 尚硅谷dubbo视频教程+课程资料网盘地
- 图片控制内容框的文字上下翻滚.rar
- Js图片连续左右滚动.rar
- 纯CSS实现鼠标移上图片添加阴影效果
- CSS将图片自动变为圆角.rar
- 图片拖拉缩放效果仿PHOTOSHOP.rar
评论
共有 条评论