我必须做的控制台程序,将绘制圆,线,抛物线我做它使用图形库,但我的老师让我做它没有任何库。
我尝试了很多,但没有任何结果,我不知道如何绘制没有图形库
这是我的代码:
#include<graphics.h>
draw_line(int a,int b){
int y;int x=3;
for(x=-2;x<=2;x++)
{
y=a*x+b;
moveto(x,y);
printf("*");
}
}
draw_circle(a,b,r){
float newx;float newy;
float angle;
for(angle=0;angle<=360;angle+=0.1)
{
newx=a+cos(radians)*r;
newy=b+sin(radians)*r;
moveto(newx,newy);
printf("*");
}
}
draw_parabola(int a,int b,int c)
{
float x; float y;
for(x=0.0;x<=2.0;x+=0.1){
y = (float) pow((float) a*x,2)+(float) pow((float) b*x,2)+c;
printf("%f",y);printf("\n");
printf("%f",x);printf("\n");
}
}
发布于 2017-12-11 11:29:14
一个控制台程序可以像这样画一个圆:
***
* *
* *
***
像这样的抛物线:
* *
* *
* *
* *
* *
* *
***
等。
为此,您不需要图形库。
这是你想要的吗?
-编辑--
有效的示例:
#include <stdio.h>
int eq_circle(int x, int y, int radius)
{
return x*x+y*y - radius;
}
int eq_parabol(int x, int y)
{
return x*x-y;
}
void draw_circle(int radius)
{
int x, y;
for (x=-5; x<=5; x++) {
for (y=-10; y<=10; y++) {
if (eq_circle(x, y, radius) < 0) printf(" ");
else printf("**");
}
printf("\n");
}
}
void draw_parabol()
{
int x, y;
for (x=-5; x<=5; x++) {
for (y=-10; y<=10; y++) {
if (eq_parabol(x, y) < 0) printf(" ");
else printf("*");
}
printf("\n");
}
}
int main()
{
draw_circle(8);
printf("\n");
draw_parabol();
}
结果:
******************************************
******************************************
******************************************
****************** ******************
**************** ****************
**************** ****************
**************** ****************
****************** ******************
******************************************
******************************************
******************************************
*********************
*********************
********************
***************
************
***********
************
***************
********************
*********************
*********************
发布于 2017-12-11 11:33:30
我的老师让我在没有任何库的情况下制作它。
否则,请学习C11标准n1570。您将看到图形在C中没有标准化,因此您必须编写一些特定于实现的代码。
在当前的台式机和笔记本电脑操作系统上(Linux、Windows、MacOSX等)和计算机一样,图形硬件非常复杂,并且可以通过几个复杂的软件层来访问。避免所有这些都是不合理的。另请参见this。
你可以问你的老师是否允许你使用一些可移植的库,如GTK,SDL,libcairo……或者你可以提供一些现有的图形程序(例如gnuplot
,dot
,...)使用数据。
顺便说一句,你的代码应该把你所有的例程声明为void
,例如
void draw_line(int a,int b);
等...
https://stackoverflow.com/questions/47751272
复制相似问题