栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Bresenham画圆法(C++实现)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Bresenham画圆法(C++实现)

#include
#include
#include
using namespace std;

void Bresenham_Circle(int x0, int y0, int r)
{
	initgraph(800, 640);
	int flag = 2 - 2 * r;
	int x = 0, y = r;
	int Direction;
	while (y >= 0)
	{
		cout << "x=" << x << ",y=" << y << ",flag=" << flag << endl;
		putpixel(x + x0, y + y0, RED);
		putpixel(x + x0, y0 - y, RED);
		putpixel(-x + x0, y + y0, RED);
		putpixel(-x + x0, y0 - y, RED);
		if (flag < 0)
		{
			int flag1 = 2 * (flag + y) - 1;
			if (flag1 <= 0)
				Direction = 1;
			else Direction = 2;
		}
		else if (flag > 0)
		{
			int flag2 = 2 * (flag - x) - 1;
			if (flag2 <= 0)
				Direction = 2;
			else Direction = 3;
		}
		else if (flag == 0)
		{
			Direction = 2;
		}

		if (Direction == 1)
		{
			x++;
			flag += (2 * x + 1);
		}
		else if (Direction == 2)
		{
			x++;
			y--;
			flag += (2 * x - 2 * y + 2);
		}
		else if (Direction == 3)
		{
			y--;
			flag += (1 - 2 * y);
		}
	}
	_getch();
	closegraph();
}

int main(void)
{
	Bresenham_Circle(300, 300, 100);
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/928103.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号