记录打印一个椭圆的有趣过程

本文介绍了使用C语言从打印圆形到椭圆的过程,通过调整坐标和方程,解决非单调函数的打印问题,最终成功绘制出椭圆。并鼓励读者尝试绘制其他曲线,如双曲线、抛物线。
摘要由CSDN通过智能技术生成

记得大一刚学C语言的时候,书后有道打印三角形的题,记得当时做了一个多小时才做出来,相信大家初学编程也做过类似的问题,今天突发奇想想打印个特殊曲线,于是把目标锁定为打印一个椭圆,大家都知道编程语言打印输出一个图形,如果它是单调递增或者单调递减是非常容易的,如果非单调的函数就得费一些周折。椭圆不是单调函数应该怎么快速打印呢首先因为圆是特殊的椭圆,所以我们先想想如何打印圆形,我们可以先想把圆分成1/4,一个1/4圆当然是单调的嘛,利用x*x + y*y = r*r这个圆的标准方程打印输出,代码如下:

#include <stdio.h>

int main()
{
	int R = 10;
	int x,y;
	
	
for(y = 0; y <= R; y++)
{
	for(x = 0; x <= R; x++)
	{
		if(x*x + y*y < R*R)
		
			printf("*");
		else
			printf(" ");
	}
printf("\n");
}
}

打印结果:

诶妈呀,咋出个这个畸形?我们仔细看会发现,原因是圆的行间距和列间距不同造成的,解决方法是把打印一个星‘*’,改成打印两个星‘**’就成了,代码如下:

#include <stdio.h>

int main()
{
	int R = 15;
	double x,y;
	
	
for(y = 0; y <= R; y++)
{
	for(x = 0; x <= R; x++)
	{
		if(x*x + y*y < R*R)
		
			printf("**");
		else
			printf(" ");
	}
printf("\n");
}
return 0;
}
打印结果:

哈,这次看起来像那么回事,现在我们想想怎么打一个完整的圆?我们打印a quarter of circle是因为圆心在(0,0)处,接下来我们只要把圆心放到(R,R)处,同时把x,y的遍历范围扩大到2R就可以啦。代码如下:


                
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值