使用C语言编程画图

如题所述

换账号再来回答,veket的小号。。。

.......用了ege图形库.........纯体力活.........

源代码....demo.cpp.....

/////////////////////////////////////////

//        ege 0.3.8   

//        MinGW  g++ 3.4.2

//        veket的小号

/////////////////////////////////////////

#include "graphics.h"

#include <stdio.h>

const int YLEN = 50;

const int XLEN = 40;

const int WIDTH = 10*XLEN;

const int HEIGHT = 2*YLEN;

const int XWIDTH = 640;

const int YHEIGHT = 480;

int main()

{

    int x1, y1, x2, y2, x, y;

    char strbuf[100];

    int i;

    setinitmode(0);

    initgraph(XWIDTH, YHEIGHT);

    setbkcolor(RGB(0xcc, 0xcc, 0xcc));

    setfillstyle(RGB(0xff, 0xff, 0xff));

    x2 = x1 = (getmaxx()-WIDTH)/2;

    y1 = (getmaxy()-2*HEIGHT-YLEN)/2;

    y2 = y1 + HEIGHT + YLEN; 

    bar(x1, y1, x1+WIDTH, y1+2*YLEN);

    setcolor(RGB(0x04, 0x04, 0x04));

    rectangle(x1, y1, x1+WIDTH, y1+2*YLEN);

    outtextxy(x1-20, y1-10, "1");

    outtextxy(x1-20, y1-10+YLEN, "0");

    outtextxy(x1-20, y1-10+2*YLEN, "-1");

    for(x=x1,y=y1+2*YLEN+10,i=0;x<=x1+WIDTH;x+=2*XLEN,i+=2)

    {

        sprintf(strbuf, "%d\0", i);

        outtextxy(x, y, strbuf);

    }

    for(x=x1;x<x1+(int)(3*PI*XLEN);x++)

    {

        y = y1 + YLEN - (int)(YLEN*sin(1.0*(x-x1)/XLEN) + 0.5);

        putpixel(x, y, RGB(0x3e, 0x3e, 0xff));

    }

   

    bar(x2, y2, x2+WIDTH, y2+2*YLEN);

    rectangle(x2, y2, x2+WIDTH, y2+2*YLEN);

    outtextxy(x2-20, y2-10, "1");

    outtextxy(x2-20, y2-10+YLEN, "0.5");

    outtextxy(x2-20, y2-10+2*YLEN, "0");

    for(x=x2,y=y2+2*YLEN+10,i=0;x<=x1+WIDTH;x+=2*XLEN,i+=2)

    {

        sprintf(strbuf, "%d\0", i);

        outtextxy(x, y, strbuf);

    }

    for(x=x2;x<x2+(int)(PI*XLEN);x++)

    {

        y = y2 + 2*YLEN - (int)(2*YLEN*sin(1.0*(x-x1)/XLEN) + 0.5);

        putpixel(x, y, RGB(0x3e, 0x3e, 0xff));

    }

    for(x=x2+(int)(2*PI*XLEN);x<x2+(int)(3*PI*XLEN);x++)

    {

        y = y2 + 2*YLEN - (int)(2*YLEN*sin(1.0*(x-x1)/XLEN) + 0.5);

        putpixel(x, y, RGB(0x3e, 0x3e, 0xff));

    }

    getch();

    closegraph();

    return 0;

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-13
请用vc++和opencv库
第2个回答  2013-03-13
推荐你个视频 大话C图教的挺好
第3个回答  2013-03-13
请看计算机图形学。

TC2.0中用C语言语句画图应该用什么函数?
\/\/ 绘图函数 COLORREF getpixel(int x, int y); \/\/ 获取点的颜色 void putpixel(int x, int y, COLORREF color); \/\/ 画点 void moveto(int x, int y); \/\/ 移动当前点(绝对坐标)void moverel(int dx, int dy); \/\/ 移动当前点(相对坐标)void line(int x1, int y1, int x2, in...

用c语言写程序,此程序能画出来函数y=2x+5的曲线图形。
此题把数学问题转化为用C语言描述即可,很多画图问题可以使用这种方法。假设屏幕左上角为坐标轴原点 也就是把我们的屏幕当作第一象限时,代码如下 include <stdio.h>#define MAX 30 \/\/ 选定曲线要显示的范围,因为一次函数是一条直线,所以它的显示范围无穷int main(){ int x, y; for...

如何用c语言画图,举几个最简单的例子
首先需要绘图函数的头文件在TC2.0中是graphics.h 然后需要初始化图形模式.在利用绘图函数 矩形:bar 圆形:circle 直线:line 等等。你可以到graphics.h文件中去看这些函数的参数 举个例子 include <stdio.h> include <graphics.h> int main(void){ int gdriver; \/*图形驱动器*\/ int gmode; ...

C语言如何画图
framebuffer(帧缓冲)。帧的最低数量为24(人肉眼可见)(低于24则感觉到画面不流畅)。显卡与帧的关系:由cpu调节其数据传输速率来输出其三基色的配比。三基色:RGB(红绿蓝)。在没有桌面和图形文件的系统界面,可以通过C语言的编程来实现在黑色背景上画图!用下面的代码,在需要的地方(有注释)适当...

c237画模板-C语言如何画图
在没有桌面和图形文件的系统界面,可以通过C语言的编程来实现在黑色背景上画图!用下面的代码,在需要的地方(有注释)适当修改,就能画出自己喜欢的图形!PS:同样要编译运行后才能出效果。include<stdio.h> include<sys\/mman.h> include<fcntl.h> include<linux\/fb.h> include<stdlib.h> defineRGB888(r,...

怎么用vc6.0画图
getch(); \/* 按任意键*\/ closegraph(); \/* 关闭绘图屏幕*\/ 说明:1. 创建的绘图屏幕640x480,表示横向有640个点,纵向有480个点。注意:左上角是原点(0,0),也就是说,y轴和数学的y轴是相反的。2. getch实现按任意键功能,按任意键后,程序继续执行。否则,程序会立刻执行closegraph...

C语言画图__并保存我画的图片
\/* HELLO.C -- Hello, world *\/ include <graphics.h> include <stdio.h> void save_pic(char *fn,int maxx,int maxy){ typedef long LONG;typedef unsigned char BYTE;typedef unsigned long DWORD;typedef unsigned short WORD;typedef struct tagBITMAPFILEHEADER { WORD bfType;DWORD bf...

谁知道C语言怎么画图啊
void far linerel(int dx, int dy); 画一条从现行游标(x, y)到按相对增量确定的点(x+dx, y+dy)的直线。void far circle(int x, int y, int radius); 以(x, y)为圆心, radius为半径, 画一个圆。c语言的图形部分是很有意思的!也是c中最精彩的内容之一,希望你能很快享受它的乐趣!

求一用C语言画直线的程序
C语言的话画直线用MoveTo()和LineTo()很简单啊。帮你复制一份我学习时老师给的画线两例:include<graphics.h> include<math.h> \/ 功 能:本函数的作用是用逐点比较法来画一条直线 格 式:void myline1(int x1,int y1,int x2,int y2,int color)参数说明:x1,y1是起始点坐标,x2,y2是...

请c语言高人帮忙下做个输出图形!急~~~
void Drawcurve()\/*画图示例*\/ { line(50,400,500,400-250);} \/\/以上只是一个示例,你没有说清楚这条曲线的具体情况,我只能做一个示例 \/\/只是帮你画你出了坐标系.还有你要将离散的点拟合成一条曲线,直接画出 \/\/是做不出平滑效果的,可以采用一些插值算法将中间的点拟合出来,再画.\/\/...

相似回答