- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
圆、椭圆的生成算法
XX大学计算机科学与技术学院
计算机科学与技术系上机实验报告
课程名称:计算机图形学 班级: 实验日期:2012-03-29 姓名: 学号: 指导教师: 实验序号:2 实验成绩: 一、实验名称
圆、椭圆的生成算法 二、实验目的及要求
优化后的算法:二次差分法
可任意指定圆心坐标。 三、实验环境
Win 7
Visual Studio 2010 四、实验原理
圆的中点算法
算法原理:
中点画圆算法就是每部单位间隔取样并且计算离圆最近的位置。
实现步骤:
1,输入圆心位置和圆的半径,得到圆周上的第一个点Point1;
(假设起始点为坐标原点,后面将通过坐标平移来处理非圆心在圆点)
2,计算决策关键参数的初始值,P = 5/4 - r;
3,在每个Xn的位置,从n = 0开始,更具决策值P来判断:
??? 如果P0,下一个点的位置为(Xn+1,Yn);
?????? 并且执行P = P + 2*(Xn+1)+1;
??? 如果P=0,下一个点的位置为(Xn+1,Yn-1);
?????? 并且执行P = P + 2*(Xn+1)+1 - 2*(Yn-1);
4,通过对称原理计算其他7个对称相关点;
5,移动坐标到圆心点(x1,y1)
????? X = X + x1;
????? Y = Y + y1;
6,如果XY重复执行3到5的步骤,否则结束该算法 五、实验步骤及算法描述
依据算法、步骤编写源程序;
编辑源程序并进行调试;
进行运行测试,并结合情况进行调整;
对运行结果进行保存与分析;
打印源程序或把源程序以文件的形式提交;
按格式书写实验报告。
六、调试过程及实验结果
程序运行截图:
七、总结
通过这次试验,是我对中点画圆算法有了更深的理解,同时也锻炼了自己的编程实践能力,收获良多! 八、附录
核心代码:
#region 显示圆弧上的八个对称点
/// summary
/// 显示圆弧上的八个对称点
/// /summary
/// param name=g画布/param
/// param name=x点横坐标x/param
/// param name=y点纵坐标y/param
/// param name=c颜色/param
void circlePoints(Graphics g ,int x , int y , Color c)
{
BaseDraw.drawPixel (g , x, y, c); BaseDraw.drawPixel (g , y, x, c);
BaseDraw.drawPixel (g , -x, y, c); BaseDraw.drawPixel (g , y, -x, c);
BaseDraw.drawPixel (g , x, -y, c); BaseDraw.drawPixel (g , -y, x, c);
BaseDraw.drawPixel (g , -x, -y, c); BaseDraw.drawPixel (g , -y, -x, c);
}
#endregion
#region 中点画圆法
void MidPointCircle(Graphics g , int r, Color c)
{
int x, y;
float d;
x = 0; y = r; d = 1.25f - r;
circlePoints ( g , x, y, c); //显示圆弧上的八个对称点
while (x = y)
{
if (d 0) d += 2*x + 3;
else { d += 2*(x - y) + 5; y--;}
x++;
circlePoints (g , x, y, c);
}
}
#endregion
//调用画圆
private void mnuCircleMid_Click(object sender, System.EventArgs e)
{
LineType = 3;
bDelay = true ;
Repaint();
}
您可能关注的文档
- 学生会生活部月工作计划.doc
- 论文东东.doc
- 陈洪娜秒的认识.ppt
- 信息商品的价值与价格.doc
- 数学奥林匹克竞赛中心数数与计数.doc
- 2010年12月下肢骨伤考试试卷.doc
- 15_使用JSP+DAO完成用户登陆.doc
- 上海高三前言课件.ppt
- 压力容器讲课方案.doc
- 高一数学函数以及几何数学经典试题.doc
- 传感器应用技术 第2版 教案 1.传感器、2.金属热电阻测量温度、3.热敏电阻及其应用.docx
- 传感器应用技术 第2版 教案 4.双金属片及其应用、5.气敏传感器、6.湿度检测.docx
- 机床电气及PLC控制(第三版) 课件 课题6 X62W型万能铣床的电气控制.pptx
- Python程序设计基础及实践(慕课版 第2版)课件 7. 组合数据类型(2)列表.pdf
- 机床电气及PLC控制(第三版) 课件 课题3 CY6140型普通车床的电气控制.pptx
- 《工业组态软件应用技术——组态王7.5》 课件 项目二 灯光组态监控系统设计.pptx
- Python程序设计基础及实践(慕课版 第2版)课件 8. 组合数据类型(3)字典和集合.pdf
- 《公共关系实务(第二版)习题册》-参考答案-劳动.pdf
- 《建筑电气》 习题及解答 05第5章 建筑电气照明系统.doc
- 《新模式英语1(第三版)学习指导与练习》-参考答案-劳动.pdf
文档评论(0)