计算机图形学实验6实验报告(2)

2019-04-10 09:43

System.exit(0);} });

} //构造方法完毕 //绘图方法paint()

public void paint(Graphics g) { Graphics2D g2d = (Graphics2D)g; Point p1,p2;

n = paintInfo.size(); //几何图元信息

if(toolFlag==2)

g.clearRect(0,0,getSize().width,getSize().height);//

清除

for(int i=0; i

p1 = (Point)paintInfo.elementAt(i); p2 = (Point)paintInfo.elementAt(i+1); size = new

BasicStroke(p1.boarder,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);

g2d.setColor(p1.col); g2d.setStroke(size); if(p1.tool==p2.tool) { switch(p1.tool) {

case 0://画笔

Line2D line1 = new Line2D.Double(p1.x, p1.y, g2d.draw(line1); break;

p2.x, p2.y);

case 1://橡皮

g.clearRect(p1.x, p1.y, p1.boarder, break;

p1.boarder);

case 3://画直线

Line2D line2 = new Line2D.Double(p1.x, p1.y, g2d.draw(line2); break;

p2.x, p2.y);

case 4://画圆

Ellipse2D ellipse = new Ellipse2D.Double(p1.x,

p1.y, Math.abs(p2.x-p1.x) , Math.abs(p2.y-p1.y)); g2d.draw(ellipse); break;

case 5://画矩形

Rectangle2D rect = new

Rectangle2D.Double(p1.x, p1.y, Math.abs(p2.x-p1.x) , Math.abs(p2.y-p1.y));

g2d.draw(rect); break;

case 6://截断,跳过

i=i+1; break; default : } //end switch } //end if } //end for

} //end绘图方法paint() //下拉式列表响应方法

public void itemStateChanged(ItemEvent e) {

if(e.getSource()==ColChoice) { //预选颜色

String name = ColChoice.getSelectedItem(); if(name==\

else if(name==\ else if(name==\ else if(name==\}

else if(e.getSource()==SizeChoice) { //画笔大小

String selected = SizeChoice.getSelectedItem(); if(selected==\ con = 1; size = new

BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL); }

else if(selected==\ con = 3; size = new

BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL); }

else if(selected==\ con = 5; size = new

BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL); }

else if(selected==\ con = 7; size = new

BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL); }

else if(selected==\ con = 9; size = new

BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL); }

} //画笔大小if结束

else if(e.getSource()==EraserChoice) { //橡皮大小 String Esize = EraserChoice.getSelectedItem(); if(Esize==\

else if(Esize==\ else if(Esize==\ else if(Esize==\}

} //下拉式列表响应方法结束 //鼠标拖曳事件响应方法

public void mouseDragged(MouseEvent e) { Point p1 ;

switch(toolFlag){

case 0://画笔

x = (int)e.getX(); y = (int)e.getY();

p1 = new Point(x, y, c, toolFlag, con); paintInfo.addElement(p1); repaint(); break;

case 1://橡皮

x = (int)e.getX(); y = (int)e.getY();

p1 = new Point(x, y, null, toolFlag, Econ); paintInfo.addElement(p1); repaint(); break; default : }

} //鼠标拖曳事件响应方法结束

public void mouseMoved(MouseEvent e) {} //鼠标事件 public void update(Graphics g) { //刷新重绘 paint(g); }

//鼠标press事件

public void mousePressed(MouseEvent e) { Point p2;

switch(toolFlag) {

case 3://直线

x = (int)e.getX(); y = (int)e.getY();

p2 = new Point(x, y, c, toolFlag, con); paintInfo.addElement(p2); break;

case 4: //圆

x = (int)e.getX(); y = (int)e.getY();

p2 = new Point(x, y, c, toolFlag, con); paintInfo.addElement(p2); break;

case 5: //矩形

x = (int)e.getX(); y = (int)e.getY();

p2 = new Point(x, y, c, toolFlag, con); paintInfo.addElement(p2); break; default : }

} //鼠标press事件结束

//鼠标release事件:设置几何图元信息后调用paint() public void mouseReleased(MouseEvent e) { Point p3;

switch(toolFlag) {

case 0://画笔

paintInfo.addElement(cutflag); break;

case 1: //eraser

paintInfo.addElement(cutflag); break; case 3://直线

x = (int)e.getX(); y = (int)e.getY();

p3 = new Point(x, y, c, toolFlag, con); paintInfo.addElement(p3);

paintInfo.addElement(cutflag); repaint(); break;

case 4: //圆

x = (int)e.getX(); y = (int)e.getY();

p3 = new Point(x, y, c, toolFlag, con); paintInfo.addElement(p3);

paintInfo.addElement(cutflag); repaint(); break;

case 5: //矩形

x = (int)e.getX(); y = (int)e.getY();

p3 = new Point(x, y, c, toolFlag, con); paintInfo.addElement(p3);

paintInfo.addElement(cutflag); repaint(); break; default: }

} //鼠标release事件结束

public void mouseEntered(MouseEvent e){} //实现鼠标事件接口


计算机图形学实验6实验报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:化工企业销售管理制度

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: