中点画圆算法_C和C ++中的中点圆算法

这篇博客介绍了如何在C和C++中使用中点圆算法进行圆的绘制。该算法常用于计算机图形学,程序基于`graphics.h`头文件,适用于Turbo C或Turbo C++编译器。为了运行程序,需要根据系统调整`initgraph()`函数内BGI文件的路径。
摘要由CSDN通过智能技术生成

中点画圆算法

Here you will get program for midpoint circle algorithm in C and C++. It is an algorithm used in computer graphics for drawing circle.

在这里,您将获得C和C ++中的中点圆算法的程序。 它是计算机图形学中用于绘制圆的算法。

This program will work in Turbo C or Turbo C++ compiler as it uses graphics.h header file.

该程序将使用graphics.h头文件,因此可在Turbo C或Turbo C ++编译器中运行。

Change the path of BGI file inside initgraph() function according to your system to make this program run.

根据您的系统更改initgraph()函数中BGI文件的路径,以使该程序运行。

C语言中点圆算法程序 (Program for Midpoint Circle Algorithm in C)

#include<stdio.h>
#include<graphics.h>
 
void drawcircle(int x0, int y0, int radius)
{
    int x = radius;
    int y = 0;
    int err = 0;
 
    while (x >= y)
    {
	putpixel(x0 + x, y0 + y, 7);
	putpixel(x0 + y, y0 + x, 7);
	putpixel(x0 - y, y0 + x, 7);
	putpixel(x0 - x, y0 + y, 7);
	putpixel(x0 - x, y0 - y, 7);
	putpixel(x0 - y, y0 - x, 7);
	putpixel(x0 + y, y0 - x, 7);
	putpixel(x0 + x, y0 - y, 7);
 
	if (err <= 0)
	{
	    y += 1;
	    err += 2*y + 1;
	}
 
	if (err > 0)
	{
	    x -= 1;
	    err -= 2*x + 1;
	}
    }
}
 
int main()
{
	int gdriver=DETECT, gmode, error, x, y, r;
	initgraph(&gdriver, &gmode, "c:\\turboc3\\bgi");
 
	printf("Enter radius of circle: ");
	scanf("%d", &r);
 
	printf("Enter co-ordinates of center(x and y): ");
	scanf("%d%d", &x, &y);
	drawcircle(x, y, r);
 
	return 0;
}

C ++中点圆算法程序 (Program for Midpoint Circle Algorithm in C++)

#include<iostream.h>
#include<graphics.h>
 
void drawcircle(int x0, int y0, int radius)
{
    int x = radius;
    int y = 0;
    int err = 0;
 
    while (x >= y)
    {
	putpixel(x0 + x, y0 + y, 7);
	putpixel(x0 + y, y0 + x, 7);
	putpixel(x0 - y, y0 + x, 7);
	putpixel(x0 - x, y0 + y, 7);
	putpixel(x0 - x, y0 - y, 7);
	putpixel(x0 - y, y0 - x, 7);
	putpixel(x0 + y, y0 - x, 7);
	putpixel(x0 + x, y0 - y, 7);
 
	if (err <= 0)
	{
	    y += 1;
	    err += 2*y + 1;
	}
 
	if (err > 0)
	{
	    x -= 1;
	    err -= 2*x + 1;
	}
    }
}
 
int main()
{
	int gdriver=DETECT, gmode, error, x, y, r;
	initgraph(&gdriver, &gmode, "c:\\turboc3\\bgi");
 
	cout<<"Enter radius of circle: ";
	cin>>r;
 
	cout<<"Enter co-ordinates of center(x and y): ";
	cin>>x>>y;
	drawcircle(x, y, r);
 
	return 0;
}

Output

输出量

Midpoint Circle Algorithm in C and C++

翻译自: https://www.thecrazyprogrammer.com/2016/12/bresenhams-midpoint-circle-algorithm-c-c.html

中点画圆算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值