- 1、本文档共40页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
独‘殊’一格小组成员:冯敏仪-负责系统的界面及线-条宽度
* 独‘殊’一格小组成员: 冯敏仪 负责系统的界面及线 条宽度代码,颜色相关代码 陈妍晖 负责直线算法 甘玉珍 负责圆形算法 徐俊敏 负责椭圆算法 萧碧薇 负责填充图形 本程序设计是用VB6.0和TC2.0制作而成,可以实现画直线,圆,椭圆这三种图形和填充一个长方形。 VB6.0的使用方法: 直线:先设定直线的起点及终点坐标,还可以设置直线的宽度及颜色。设置好后,按画直线按钮,即可。 圆:先设置圆的圆心,及半径,圆的线条的宽度及颜色。然后按画圆按钮,即可。画出圆形后,若选择填充,即可填充该图形。 椭圆:先设置后椭圆的实轴和虚轴,椭圆的线条宽度及颜色。然后按画椭圆按钮,即可。画出椭圆后,若选择填充,即可填充该图形。 注:在宽度和颜色都不设置的情况下,系统自动默认为1和黑色 TC2.0的使用方法: 画出一个长方形,实现对长方形的填充,直接运行即可。 负责系统的界面及线条宽度和颜色等相关代码 我负责的那部分很简单!界面的设计,只是用了一个form,再加几个VB里面很常用的按钮,例如:textbox;picturebox;label;commanButton. 线条的宽度就用了Picture1.DrawWidth就是决定Picture控件上划线的宽度 颜色就用了一个VB里面很现成的ShowColor函数 冯敏仪: 在界面上用到的几个控件如下: textbox;label;commanButton. 这是我们的图形生成区,用了一个picturebox做成,刻度是用了两组label数组做成我们的横坐标跟纵坐标! 图形生成:在picturebox里面用了 Form_Paint()函数实现画图 程序如下: Private Sub Form_Paint() For i = 0 To 17 Label5(i).Left = Picture1.Left + (i + 1) * 567 Next For i = 0 To 11 Label6(i).Top = Picture1.Top + (i + 1) * 567 Next End Sub Showcolor函数: 在选择颜色的按钮写下下面函数 Private Sub Command2_Click() CommonDialog1.ShowColor End Sub 负责直线算法 陈妍晖: 算法原理如下:过各个像素的中心构造一组虚拟网格线,首先按直线从起点到终点的顺序计算直线与各垂直网格线的交点,然后,采用增量计算,使得对于每一列,只要检查一个误差项的符号,就可以确定该列像素中与此交点最近的像素。 Bresenham算法 过各行各列象素中心构造一组虚拟网格线。按直线从起点到终点的顺序计算直线与各垂直网格线的交点,然后根据误差项的符号确定该列象素中与此交点最近的象素。 设直线l方程为yi+1=yi+k(xi+1-xi),其中,k = dy/dx。假设当前像素的x坐标已经确定为xi,其y坐标为yi,由于坐标(xi,yi)(i=0,1,…)只能取整数,那么下一个像素的x坐标xi+1=xi+1,而yi+1的坐标有两种可能: 1) 保持不变,即y i+1=yi;或者 2) y坐标递增1,即y i+1=yi+1。 令di+1=di+k(xi+1-xi),y坐标是否增加1取决于误差项d i的值。因为直线的起始点在像素中心,所以初始误差d0=0。x每增加1,y的值相应递增直线的斜率值k,即di+1=di+k。一旦di+1≥1,就把它减去1,这样保证di+1在0~1之间。 Ⅰ. ①当d i+1≥0.5时,直线l与x=xi+1的垂线的交点最接近于当前像素(xi,yi)的右上方像素(xi+1,yi+1); ②当d i+10.5时,其交点更接近于(xi,yi)右边的像素(xi+1, yi)。为方便计算,令e0=-0.5,e i+1=di+1-0.5,增量为k。 Ⅱ. ①ei+1≥0时,取当前像素(xi,yi)的右上方像素(xi+1, yi+1) ②而当e i+10时,更接近于右方像素(xi+1,yi)。 画斜率0≤k≤1的直线的改进的Bresenham画线算法: void BresenhamLine (int x0, int y0, int x1, int y1, lo
文档评论(0)