谁能帮我用C语言吧《折线图》做出来啊,在TC环境里面的。(不是C++哦)

谁能帮我用C语言吧《折线图》做出来啊,在TC环境里面的。(不是C++哦),第1张

我编了一个,你试试。

用了两个库函数,一个是initgraph(),一个是line()。

initgraph需要3个参数,原型是

initgraph(图形驱动器代号,工作模式,图形驱动器文件路径).

所以用的时候要把最后一个参数改一下,改成你的TC目录的路径。

即把下面代码中的 initgraph(&driver, &mode, "D:\\TC2")最后一个"D:\\TC2"改成你的tc的路径。

line需要四个参数,原型是

line(起点x坐标,起点y坐标,终点x坐标,终点y坐标)

这样只要知道起点和终点的坐标就可以画一条直线了,然后多画几次,就形成了折线。

代码:

#include <stdio.h>

#include <GRAPHICS.H>

void main()

{

int driver=VGA

int mode = VGAHI

initgraph(&driver, &mode, "D:\\TC2")//to change

line(0,300,100,300)

line(100,300,200,250)

line(200,250,400,400)

line(400,400,500,350)

getchar()

}

#include "Conio.h"

#include "graphics.h"

#define closegr closegraph

void initgr(void) /* BGI初始化 */

{

int gd = DETECT, gm = 0 registerbgidriver(EGAVGA_driver) /* 注册BGI驱动后可以不需要.BGI文件的支持运行 */

initgraph(&gd, &gm, "")

}

void DrawCoord()

void Drawstg()

void Drawcurve()

int main(void)

{

initgr() /* BGI初始化 */

DrawCoord()

Drawstg()

Drawcurve()

getch() /* 暂停一下,看看前面绘图代码的运行结果 */

closegr() /* 恢复TEXT屏幕模式 */

return 0

}

void DrawCoord() /*画坐标系*/

{

line(50,40,50,400)/*y轴*/

line(50,400,600,400)/*x轴*/

line(50,40,45,50)/*箭头*/

line(50,40,55,50)

line(600,400,590,395)

line(600,400,590,405)

outtextxy(35,45,"y")

outtextxy(590,410,"x")

outtextxy(40,410,"O")

}

void Drawstg() /*画标尺*/

{

int x,y,i

x=50,y=400

for(i=0i<17i++)

{

line(x+5,y,x,y)

y-=20

}

x=50,y=400

for(i=0i<26i++)

{

line(x,y-5,x,y)

x+=20

}

}

void Drawcurve()

{

line(50,400,500,400-250)

}

代码不敢保没错。太难了,如果想单纯用C语言写出图形,C最大的悲剧就是没可视化界面。上面的还是在winDOS下调用到底层图形接口文件,做出个坐标系。在linux下,GCC只是linux下的一个普通c编译器,做不做的出图形与它无关。linux本来这个系统就没有图形化界面,只是不同linux商自己开发出了图形桌面。想单纯在终端下用C做出图形,要很了解linux底层的接口文件,驱动等。你可以选择一些图形化工具,linux下QT就是个不错的图形化工具,图形自己画,图形代码工具给你生成,你自己只要添加核心的代码就行

/*请不要看完了就走人*/

/*帮帮忙,采纳我的答案!*/

#include<stdio.h>

#include<math.h>

main(){

double

y

int

x,m,i

printf("y=sin(x)

[0<x<2*pi]\n")

for(y=1y>=-1y-=0.1){

if(y>=0){

m=asin(y)*10

for(x=1x<mx++)printf("

")

printf("*",m)

for(x<31-mx++)printf("

")

printf("*\n")}

else{

m=-1*asin(y)*10

for(i=0i<32i++)printf("

")

for(x=1x<mx++)printf("

")

printf("*",m)

for(x<31-mx++)printf("

")

printf("*\n",m)

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/9027150.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-24
下一篇2023-04-24

发表评论

登录后才能评论

评论列表(0条)

    保存