资源描述:
《直线与圆绘制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、学号天津城建大学计算机图形学实验报告实验八直线与圆的绘制学生姓名专业、班级指导教师成绩计算机与信息工程学院2013年月日天津城建大学设计性实验任务书计算机与信息工程学院计算机专业2班姓学号:课程名称:计算机图形学设计题目:用逐点比较法实现直线和圆的绘制完成期限:自2013年11月1日至2013年11月10日设计依据、要求及主要内容(可另加附页):1设计依据:本课程设计是依据教材<<计算机计算机图形学>>一书的第5章图形算法为设计依据,制作直线和圆的程序。2设计要求:用逐点比较法实现直线和圆的绘制基本要求:(1)数据输入项为:直线的起点与终点坐标,圆心坐标与
2、半径(2)直线与圆输出在PictureBox控件中附加要求:(1)通过用户输入可改变直线的线型(实线、虚线与点划线)(3)通过用户输入可改变直线的线宽(用方刷子处理)指导教师:任丽敏原程序:逐点画线程序(1)usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespacezhudianhuaxian{pu
3、blicpartialclassForm1:Form{publicForm1(){InitializeComponent();}publicvoidBresenhamLine(intx0,inty0,intx1,inty1,Bitmapbmp){intdeltax,deltay,delta1,delta2,d,x,y;deltax=x1-x0;deltay=y1-y0;d=2*deltay-deltax;delta1=2*deltay;delta2=2*(deltay-deltax);x=x0;y=y0;bmp.SetPixel(x,y,Color.Blu
4、e);while(x5、00,200,bmp);graphics.DrawImage(bmp,newRectangle(0,0,this.ClientRectangle.Width,this.ClientRectangle.Height));}}}运行结果:逐点画圆程序:#include#include#include#includevoidBresenhemCircle(intcenterx,intcentery,intradius,intcolor,inttype);voidinitgr(void
6、)/*BGI初始化*/{intgd=DETECT,gm=0;/*和gd=VGA,gm=VGAHI是同样效果*/registerbgidriver(EGAVGA_driver);/*注册BGI驱动后可以不需要.BGI文件的支持运行*/initgraph(&gd,&gm,"");setbkcolor(WHITE);}intmain(void){intcenterx,centery,radius,color,type;printf("centerx,centery");scanf("%d",¢erx);scanf("%d",¢ery);pri
7、ntf("radius");scanf("%d",&radius);printf("color,type");scanf("%d",&color);scanf("%d",&type);initgr();/*BGI初始化*/BresenhemCircle(centerx,centery,radius,color,type);getch();closegraph();}voidBresenhemCircle(intcenterx,intcentery,intradius,intcolor,inttype){intx=type=0;inty=radius
8、;intdelta=2*(1-radius);intdirecti