我想绘制一个椭圆,但它不像我绘制的椭圆。 你可以看到我的椭圆。
我应该改变哪些事情? 简而言之,如何画出一个好的椭圆?
在代码中没有错误。
那是我的代码:
#include <stdio.h>
void Circle(int radius);
int main(void){
int radius;
Circle(5);
}
void Circle(int radius)
{
int star,space;
int i;
int j;
star=1;
space=radius-1;
for(i=1;i<=radius;i++)
{
for(j=1;j<=space;j++){
printf(" ");
}
for(j=1;j<=star;j++){
printf("*");
}
space--;
star+=2;
printf("\n");
}
star-=4;
for(i=1;i<radius;i++)
{
for(j=1;j<=i;j++){
printf(" ");
}
for(j=1;j<=star;j++){
printf("*");
}
star-=2;
printf("\n");
}
}
答案 0 :(得分:0)
您的圈子功能应如下所示:您的功能的肉和土豆是sqrt((j-(k)/2)*(j-(k)/2) + (i-(k)/2)*(i-(k)/2))<=radius
。如果你采用了高级数学,这个公式看起来应该很熟悉。 k是表面,可以调整。
它基本上绘制了你的50x50表面积(或者k是什么)。 x,y是沿着平面的不同点。
(X-中心)^ 2 +(Y-中心)^ 2'=半径
void Circle(int radius) {
int i,j;
int k = 50;
for (i=0; i<k; i++) {
for (j=0; j<k; j++) {
if(sqrt((j-(k)/2)*(j-(k)/2) + (i-(k)/2)*(i-(k)/2))<=radius)
printf("*"); //meets criteria print *
else
printf(" "); //blank space
}
printf("\n");
}
}
半径为20:
*
*************
*****************
*********************
*************************
***************************
*****************************
*******************************
*********************************
*********************************
***********************************
***********************************
*************************************
*************************************
***************************************
***************************************
***************************************
***************************************
***************************************
***************************************
*****************************************
***************************************
***************************************
***************************************
***************************************
***************************************
***************************************
*************************************
*************************************
***********************************
***********************************
*********************************
*********************************
*******************************
*****************************
***************************
*************************
*********************
*****************
*************
*
如果您不想使用math.h,您可以定义自定义sqrt:
double sqrt(float number)
{
double precision = 0.001;
double s = number;
while ((s - number / s) > precision) {
s = (s + number / s) / 2;
}
return s;
}