首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用C语言绘制无图形库的图形

用C语言绘制无图形库的图形
EN

Stack Overflow用户
提问于 2017-12-11 18:50:37
回答 2查看 11.1K关注 0票数 1

我必须做的控制台程序,将绘制圆,线,抛物线我做它使用图形库,但我的老师让我做它没有任何库。

我尝试了很多,但没有任何结果,我不知道如何绘制没有图形库

这是我的代码:

代码语言:javascript
代码运行次数:0
运行
复制
#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");

    }
}
EN

回答 2

Stack Overflow用户

发布于 2017-12-11 19:29:14

一个控制台程序可以像这样画一个圆:

代码语言:javascript
代码运行次数:0
运行
复制
  ***
*     *
*     *
  ***

像这样的抛物线:

代码语言:javascript
代码运行次数:0
运行
复制
*         *
*         *
*         *
 *       *
 *       *
  *     *
    ***

等。

为此,您不需要图形库。

这是你想要的吗?

-编辑--

有效的示例:

代码语言:javascript
代码运行次数:0
运行
复制
#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();
}

结果:

代码语言:javascript
代码运行次数:0
运行
复制
******************************************
******************************************
******************************************
******************      ******************
****************          ****************
****************          ****************
****************          ****************
******************      ******************
******************************************
******************************************
******************************************

*********************
*********************
******************** 
***************      
************         
***********          
************         
***************      
******************** 
*********************
*********************
票数 4
EN

Stack Overflow用户

发布于 2017-12-11 19:33:30

我的老师让我在没有任何库的情况下制作它。

你可以像here回答的那样做ASCII art

否则,请学习C11标准n1570。您将看到图形在C中没有标准化,因此您必须编写一些特定于实现的代码。

在当前的台式机和笔记本电脑操作系统上(Linux、Windows、MacOSX等)和计算机一样,图形硬件非常复杂,并且可以通过几个复杂的软件层来访问。避免所有这些都是不合理的。另请参见this

你可以问你的老师是否允许你使用一些可移植的库,如GTKSDLlibcairo……或者你可以提供一些现有的图形程序(例如gnuplotdot,...)使用数据。

顺便说一句,你的代码应该把你所有的例程声明为void,例如

void draw_line(int a,int b);等...

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47751272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档