#include "graphics.h"
#include "stdlib.h"
#include "math.h"
#include "stdio.h"
#define I 3.1415925/180
main()
{
int gdriver=DETECT,gmode;
int i,c=0,d=1;
double x0,y0,x1,y1;
double x[6],y[6],a[5],b[5];
initgraph(&gdriver,&gmode,"");
x0=getmaxx()/2;
y0=getmaxy()/2;
while(!kbhit())
{
cleardevice();
x1=x0+100*cos(c*I);
y1=y0+100*sin(c*I);
for(i=0;i<6;i++)
{
x[i]=x1+20*cos(i*I*72+c*I);
y[i]=y1+20*sin(i*I*72+c*I);
}
for(i=0;i<5;i++)
{
a[i]=x1+8*cos((i*72+36)*I+c*I);
b[i]=y1+8*sin((i*72+36)*I+c*I);
}
setcolor(d);
for(i=0;i<5;i++)
{
line(x[i],y[i],a[i],b[i]);
line(a[i],b[i],x[i+1],y[i+1]);
}
delay(60);
c=c++;
d++;
if(d==14) d=1;
}
getchar();
closegraph();
return 0;
}
15 个解决方案
#1
vc中没有 "graphics.h" 文件,
但是在tc或者c++builder中有该头文件
但是在tc或者c++builder中有该头文件
#2
c++在<locale>里面包含了c的标准库,但是 graphics.h? 好像没有
#3
那怎么办啊
#4
不要用VC写DOS下的绘图程序
#5
对,vc下已经不用graphics.h了,不过你可以尝试把其他编译器中的头文件和库文件移到vc中看看能不能连接。
#6
这个程序干嘛要在VC里编译,VC就不这样写了。
#7
上面的程序我在TC里运行说没有INITGRAPH
但我明明初始化了
请你们帮我看看到底是什么问题
谢谢各位啊
但我明明初始化了
请你们帮我看看到底是什么问题
谢谢各位啊
#8
不要用VC开发for dos的程序,吃力不讨好。
#9
图形库是不同厂家提供的,并不是C/C++标准
要在VC里面绘制DOS图形,可以使用 VC 1.5 或以前版本
所有后面的版本都没有了,因为都 WINDOWS 了 :)
要在VC里面绘制DOS图形,可以使用 VC 1.5 或以前版本
所有后面的版本都没有了,因为都 WINDOWS 了 :)
#10
我知道了,这个问题我也碰到过,主要是TC的环境没设置好
打开File->Directory
设置好你TC所在的路径就行了:)
打开File->Directory
设置好你TC所在的路径就行了:)
#11
在VC中有很多TC中的函数都是没有的,特别是关于屏幕输出的函数(包括字符和图形),
因为VC已开始淘汰dos界面的操作,这是大趋势,悲哀!!
因为VC已开始淘汰dos界面的操作,这是大趋势,悲哀!!
#12
独立图形运行程序的建立
Turbo C对于用initgraph()函数直接进行的图形初始化程序, 在编译和链接
时并没有将相应的驱动程序(*.BGI)装入到执行程序, 当程序进行到intitgraph()
语句时, 再从该函数中第三个形式参数char *path中所规定的路径中去找相应的
驱动程序。若没有驱动程序, 则在C:\TC中去找, 如C:\TC中仍没有或TC不存在,
将会出现错误:
BGI Error: Graphics not initialized (use 'initgraph')
因此, 为了使用方便, 应该建立一个不需要驱动程序就能独立运行的可执行
图形程序,Turbo C中规定用下述步骤(这里以EGA、VGA显示器为例):
1. 在C:\TC子目录下输入命令:BGIOBJ EGAVGA
此命令将驱动程序EGAVGA.BGI转换成EGAVGA.OBJ的目标文件。
2. 在C:\TC子目录下输入命令:TLIB LIB\GRAPHICS.LIB+EGAVGA
此命令的意思是将EGAVGA.OBJ的目标模块装到GRAPHICS.LIB库文件中。
3. 在程序中initgraph()函数调用之前加上一句:
registerbgidriver(EGAVGA_driver):
该函数告诉连接程序在连接时把EGAVGA的驱动程序装入到用户的执行程序中。
Turbo C对于用initgraph()函数直接进行的图形初始化程序, 在编译和链接
时并没有将相应的驱动程序(*.BGI)装入到执行程序, 当程序进行到intitgraph()
语句时, 再从该函数中第三个形式参数char *path中所规定的路径中去找相应的
驱动程序。若没有驱动程序, 则在C:\TC中去找, 如C:\TC中仍没有或TC不存在,
将会出现错误:
BGI Error: Graphics not initialized (use 'initgraph')
因此, 为了使用方便, 应该建立一个不需要驱动程序就能独立运行的可执行
图形程序,Turbo C中规定用下述步骤(这里以EGA、VGA显示器为例):
1. 在C:\TC子目录下输入命令:BGIOBJ EGAVGA
此命令将驱动程序EGAVGA.BGI转换成EGAVGA.OBJ的目标文件。
2. 在C:\TC子目录下输入命令:TLIB LIB\GRAPHICS.LIB+EGAVGA
此命令的意思是将EGAVGA.OBJ的目标模块装到GRAPHICS.LIB库文件中。
3. 在程序中initgraph()函数调用之前加上一句:
registerbgidriver(EGAVGA_driver):
该函数告诉连接程序在连接时把EGAVGA的驱动程序装入到用户的执行程序中。
#13
如果在Windows下或WindowsConsole下运行,请采用GDI函数,放弃TC函数!
#14
WindowsConsole下运行 是不能使用GDI的吧?!
#15
Console programm 用的库是不能使用关于GDI的!
但是可以用MFC里的一些类库,比如CFile,这样关于字符流性质的!
另外,graphics是DOS下的,而现在是WINDOWS下使用了GDI,graphics不能用了!他们采用的模式是不相同的,因此不能混用!
但是可以用MFC里的一些类库,比如CFile,这样关于字符流性质的!
另外,graphics是DOS下的,而现在是WINDOWS下使用了GDI,graphics不能用了!他们采用的模式是不相同的,因此不能混用!
#1
vc中没有 "graphics.h" 文件,
但是在tc或者c++builder中有该头文件
但是在tc或者c++builder中有该头文件
#2
c++在<locale>里面包含了c的标准库,但是 graphics.h? 好像没有
#3
那怎么办啊
#4
不要用VC写DOS下的绘图程序
#5
对,vc下已经不用graphics.h了,不过你可以尝试把其他编译器中的头文件和库文件移到vc中看看能不能连接。
#6
这个程序干嘛要在VC里编译,VC就不这样写了。
#7
上面的程序我在TC里运行说没有INITGRAPH
但我明明初始化了
请你们帮我看看到底是什么问题
谢谢各位啊
但我明明初始化了
请你们帮我看看到底是什么问题
谢谢各位啊
#8
不要用VC开发for dos的程序,吃力不讨好。
#9
图形库是不同厂家提供的,并不是C/C++标准
要在VC里面绘制DOS图形,可以使用 VC 1.5 或以前版本
所有后面的版本都没有了,因为都 WINDOWS 了 :)
要在VC里面绘制DOS图形,可以使用 VC 1.5 或以前版本
所有后面的版本都没有了,因为都 WINDOWS 了 :)
#10
我知道了,这个问题我也碰到过,主要是TC的环境没设置好
打开File->Directory
设置好你TC所在的路径就行了:)
打开File->Directory
设置好你TC所在的路径就行了:)
#11
在VC中有很多TC中的函数都是没有的,特别是关于屏幕输出的函数(包括字符和图形),
因为VC已开始淘汰dos界面的操作,这是大趋势,悲哀!!
因为VC已开始淘汰dos界面的操作,这是大趋势,悲哀!!
#12
独立图形运行程序的建立
Turbo C对于用initgraph()函数直接进行的图形初始化程序, 在编译和链接
时并没有将相应的驱动程序(*.BGI)装入到执行程序, 当程序进行到intitgraph()
语句时, 再从该函数中第三个形式参数char *path中所规定的路径中去找相应的
驱动程序。若没有驱动程序, 则在C:\TC中去找, 如C:\TC中仍没有或TC不存在,
将会出现错误:
BGI Error: Graphics not initialized (use 'initgraph')
因此, 为了使用方便, 应该建立一个不需要驱动程序就能独立运行的可执行
图形程序,Turbo C中规定用下述步骤(这里以EGA、VGA显示器为例):
1. 在C:\TC子目录下输入命令:BGIOBJ EGAVGA
此命令将驱动程序EGAVGA.BGI转换成EGAVGA.OBJ的目标文件。
2. 在C:\TC子目录下输入命令:TLIB LIB\GRAPHICS.LIB+EGAVGA
此命令的意思是将EGAVGA.OBJ的目标模块装到GRAPHICS.LIB库文件中。
3. 在程序中initgraph()函数调用之前加上一句:
registerbgidriver(EGAVGA_driver):
该函数告诉连接程序在连接时把EGAVGA的驱动程序装入到用户的执行程序中。
Turbo C对于用initgraph()函数直接进行的图形初始化程序, 在编译和链接
时并没有将相应的驱动程序(*.BGI)装入到执行程序, 当程序进行到intitgraph()
语句时, 再从该函数中第三个形式参数char *path中所规定的路径中去找相应的
驱动程序。若没有驱动程序, 则在C:\TC中去找, 如C:\TC中仍没有或TC不存在,
将会出现错误:
BGI Error: Graphics not initialized (use 'initgraph')
因此, 为了使用方便, 应该建立一个不需要驱动程序就能独立运行的可执行
图形程序,Turbo C中规定用下述步骤(这里以EGA、VGA显示器为例):
1. 在C:\TC子目录下输入命令:BGIOBJ EGAVGA
此命令将驱动程序EGAVGA.BGI转换成EGAVGA.OBJ的目标文件。
2. 在C:\TC子目录下输入命令:TLIB LIB\GRAPHICS.LIB+EGAVGA
此命令的意思是将EGAVGA.OBJ的目标模块装到GRAPHICS.LIB库文件中。
3. 在程序中initgraph()函数调用之前加上一句:
registerbgidriver(EGAVGA_driver):
该函数告诉连接程序在连接时把EGAVGA的驱动程序装入到用户的执行程序中。
#13
如果在Windows下或WindowsConsole下运行,请采用GDI函数,放弃TC函数!
#14
WindowsConsole下运行 是不能使用GDI的吧?!
#15
Console programm 用的库是不能使用关于GDI的!
但是可以用MFC里的一些类库,比如CFile,这样关于字符流性质的!
另外,graphics是DOS下的,而现在是WINDOWS下使用了GDI,graphics不能用了!他们采用的模式是不相同的,因此不能混用!
但是可以用MFC里的一些类库,比如CFile,这样关于字符流性质的!
另外,graphics是DOS下的,而现在是WINDOWS下使用了GDI,graphics不能用了!他们采用的模式是不相同的,因此不能混用!