
用了两个库函数,一个是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)
}
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)