【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《计算机图形学正负法画圆》,欢迎阅读!
计算机图形学试验报告(六)
试验名称: 利用正负法画圆
专业:地理信息系统 班级:2011级1班学号:********姓名: 日期: 2013年
一、试验内容
1、利用中点法思想编写函数; 2、利用算法生成圆;
3、完成属性设置和增加交互功能;
二、试验目的
通过上机操作,编写中点法生成圆,理解重点算法的生成原理,并实现简单的交互功能。
三、试验原理
中点法生成圆,是利用函数曲线的交点与两个像素的中点的位置关系,来确定下一像素点的选取,决策变量d的初始值为d=d=5.0/4-r; 当点(x,y)在圆内时,d<0;当点在圆外时,d>0;当点在圆上时,d=0。根据判别变量F的正负,可设定x,y的移动方向,然后利用映射变换生成整个圆。
四、程序设计流程
d>0
是
d+=2.0*(x-y)+5;
y--; x++;
d+=x*2.0+3; x++;
开始
初始量 x=0, y=r, d=5/4-r;
否
否
终止判别
是 结束
- 1 -
五、试验程序
(1)
#include “graphics.h” #include “conio.h”
void MidpointCircle(x0,y0,r,color) { int x,y; float d; x=0; y=r;
d=5.0/4-r; while(x<=y) { putdot(x0,y0,x,y,color); if(d<0)
d+=x*2.0+3; else {
d+=2.0*(x-y)+5; y--; } x++; } }
putdot(x0,y0,x,y,color) {
putpixel(x0+x,y0+y,color); putpixel(x0+x,y0-y,color); putpixel(x0-x,y0+y,color); putpixel(x0-x,y0-y,color); putpixel(x0+y,y0+x,color);
//设置初始变量d //结束判断 //更新判别变量
//点在圆外,向下走一个单位- 2 -
本文来源:https://www.wddqxz.cn/0b828c64ba1aa8114431d9c5.html