g2d.setColor(p1.col); g2d.setStroke(size);
绘制图形用到类Graphics2D,其中包括很多绘制图形的方法,定义一个Graphics2D类g,用getGraphics()来得到一个Graphics2D对象,它相当于组建的绘图环境,可以进行各种绘图操作。
定义一个BasicStroke类size来确定画笔的大小,其中BasicStroke类定义针对图形图元轮廓呈现属性的一个基本集合,这些图元使用Graphics2D 对象呈现,而该对象的Stroke 属性设置为此BasicStroke。其中con为画笔宽度,CAP_BUTT指无装饰地结束未封闭的子路径和虚线线段,JOIN_BEVEL通过直线连接宽体轮廓的外角,将路径线段连接在一起。 2、实现画笔、橡皮、直线,椭圆和矩形的绘制。 if(p1.tool==p2.tool) { switch(p1.tool) { case 0://画笔 Line2D line1 = new Line2D.Double(p1.x, p1.y, p2.x, p2.y); g2d.draw(line1); break; case 1://橡皮 g.clearRect(p1.x, p1.y, p1.boarder, p1.boarder); break; case 3://画直线 Line2D line2 = new Line2D.Double(p1.x, p1.y, p2.x, p2.y); g2d.draw(line2); break; case 4://画圆 Ellipse2D ellipse = new Ellipse2D.Double(p1.x, 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, 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() }
3、对画笔大小的设定,和对橡皮大小的设定。
p1.y, p1.y, String selected = SizeChoice.getSelectedItem(); if(selected==\ { con = 1; size =
BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL); }
{ //橡皮大小 String Esize = EraserChoice.getSelectedItem(); if(Esize==\ { Econ = 5*2; } else if(Esize==\ { Econ = 9*2; } else if(Esize==\ { Econ = 13*2; } else if(Esize==\ { Econ = 17*3; } } 代码:
new
//构造方法
paintboard(String s) { super(s);
addMouseMotionListener(this); addMouseListener(this);
paintInfo = new Vector(); //几何图元信息 /*各工具按钮及选择项*/ //颜色选择
ColChoice = new Choice(); ColChoice.add(\ColChoice.add(\ColChoice.add(\ColChoice.add(\
ColChoice.addItemListener(this); //画笔大小选择
SizeChoice = new Choice(); SizeChoice.add(\SizeChoice.add(\SizeChoice.add(\SizeChoice.add(\SizeChoice.add(\
SizeChoice.addItemListener(this); //橡皮大小选择
EraserChoice = new Choice(); EraserChoice.add(\EraserChoice.add(\EraserChoice.add(\EraserChoice.add(\
EraserChoice.addItemListener(this); toolPanel = new Panel(); //命令按钮
clear = new Button(\清除\eraser = new Button(\橡皮\pen = new Button(\画笔\drLine = new Button(\画直线\drCircle = new Button(\画圆形\drRect = new Button(\画矩形\openPic = new Button(\打开图画\savePic = new Button(\保存图画\colchooser = new Button(\显示调色板\//各组件事件监听
clear.addActionListener(this); eraser.addActionListener(this); pen.addActionListener(this); drLine.addActionListener(this); drCircle.addActionListener(this); drRect.addActionListener(this); openPic.addActionListener(this); savePic.addActionListener(this); colchooser.addActionListener(this); //标签
颜色 = new Label(\画笔颜色\大小B = new Label(\画笔大小\
大小E = new Label(\橡皮大小\//面板添加组件
toolPanel.add(openPic); toolPanel.add(savePic); toolPanel.add(pen); toolPanel.add(drLine); toolPanel.add(drCircle); toolPanel.add(drRect);
toolPanel.add(颜色); toolPanel.add(ColChoice); toolPanel.add(大小B); toolPanel.add(SizeChoice); toolPanel.add(colchooser); toolPanel.add(eraser);
toolPanel.add(大小E); toolPanel.add(EraserChoice); toolPanel.add(clear); //工具面板到APPLET面板
add(toolPanel,BorderLayout.NORTH);
setBounds(60,60,900,600); setVisible(true); validate(); //强制显示容器 //dialog for save and load
openPicture = new FileDialog(this,\打开图画
\
openPicture.setVisible(false);
savePicture = new FileDialog(this,\保存图画
\
savePicture.setVisible(false);
//强制关闭窗口响应方法
openPicture.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { openPicture.setVisible(false); } });
savePicture.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { savePicture.setVisible(false); } }); addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e) {
以上是由77cn范文大全为大家整理的计算机图形学实验6实验报告的相关范文,本文关键词为计算机,图形,实验,报告,计算机图形学,实验,报告,题目,简,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在综合文库中查看更多范文。
计算机图形学实验6实验报告.doc
免费范文网为全国范文类知名网站,下载全文稍作修改便可使用,即刻完成写稿任务。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库计算机图形学实验6实验报告在线全文阅读。
本文来自:免费范文网(www.77cn.com.cn) 转载请注明出处!