计算机图形学--圆的的生成算法的实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机图形学--圆的的生成算法的实现
实验三:圆的的生成算法的实现
班级08信计2班学号20080502063 姓名李宁分数
一、实验目的与要求:
1、了解WIN-TC1.72等编程环境中常用控件命令与绘图函数,初步掌
握在实验设
计集成环境下进行图形处理程序的设计方法。

2、熟练掌握圆的两种换算法:基于正负算法画圆和基于中点算法画圆。

、二、实验内容:
1、在WIN-TC1.72环境中设计程序,利用消息处理函数,搭建能运行
图形算法程
序的平台。

2、根据教材中给定的算法,实现圆的两种生成算法:基于中点算法画圆和基于
正负算法
三、实验结果分析:
1、实验程序
(1)基于中点算法画圆程序实现的完整源程序
#include <graphics.h>
#include <conio.h>
// 中点画圆法
void Circle_Midpoint(int x, int y, int r, int color)
{
int tx = 0, ty = r, d = 1 - r;
while(tx <= ty)
{
// 利用圆的八分对称性画点
putpixel(x + tx, y + ty, color);
putpixel(x + tx, y - ty, color);
putpixel(x - tx, y + ty, color);
putpixel(x - tx, y - ty, color);
putpixel(x + ty, y + tx, color);
putpixel(x + ty, y - tx, color);
putpixel(x - ty, y + tx, color);
putpixel(x - ty, y - tx, color);
if(d < 0)
d += 2 * tx + 3;
else
d += 2 * (tx - ty) + 5, ty--;
tx++;
}
}
// 主函数
void main()
{
initgraph(640, 480);
// 测试画圆
Circle_Midpoint(320, 240, 200, RED);
Circle_Midpoint(320, 240, 101, RED);
// 按任意键退出
getch();
closegraph();
}
(2)基于正负算法程序实现的完整源程序
#include <graphics.h>
#include <conio.h>
// 正负画圆法
void Circle_PN(int x, int y, int r, int color) {
int tx = 0, ty = r, f = 0;
while(tx <= ty)
{
// 利用圆的八分对称性画点
putpixel(x + tx, y + ty, color);
putpixel(x + tx, y - ty, color);
putpixel(x - tx, y + ty, color);
putpixel(x - tx, y - ty, color);
putpixel(x + ty, y + tx, color);
putpixel(x + ty, y - tx, color);
putpixel(x - ty, y + tx, color);
putpixel(x - ty, y - tx, color);
if(f <= 0)
f = f + 2 * tx + 1, tx++;
else
f = f - 2 * ty + 1, ty--;
}
}
// 主函数
void main()
{
initgraph(640, 480);
// 测试画圆
Circle_PN(320, 240, 200, RED); Circle_PN(320, 240, 101, RED);
// 按任意键退出
getch();
closegraph();
}
2、实验结果
中点算法运行结果:
基于正负算法结果

四、实验结果分析
该实验基于中点算法和正负算法画圆的基本函数,设计出直线的图像的程序。

按照画园的方法可以分为以下几种方法,分别是生成圆的Bresenham 算法和正负算法和中点算法。

在任何调用这些图形模式的功能函数的程序中,都应该在程序的说明部分。

通过对程序的编
辑,运行,就可以得到非常形象生动的动画。

通过对程序的分析与学习,使我学到了如何熟悉圆的生成算法,掌握圆的绘制。

通过应用基本函数,编写程序,然后才能使用一些基本的图形函数,进行调用,编写程序,经过许多个步骤,编完之后应用TC软件进行调试,修改,最终才能得到想要的结果。

相关文档
最新文档