先说一下 VC模拟TC 和 TC 运行的区别:
1、
VC 模拟TC 说明:
(1)本系统可以在 win2000/winxp/vista/win7 下完美使用 Turbo C 2.0,包括图形程序。
所有环境均已经配置好,不用修改。
所有环境均已经配置好,不用修改。
(2)由于虚拟了 DOS 环境,文件夹 DISK_C 就是 C:\,使用文件路径的时候需要注意。
例如,图形程序中初始化图形环境的代码:
int gdriver=VGA, gmode=VGAHI;
initgraph(&gdriver, &gmode, "C:\\TC20\\BGI");
例如,图形程序中初始化图形环境的代码:
int gdriver=VGA, gmode=VGAHI;
initgraph(&gdriver, &gmode, "C:\\TC20\\BGI");
(3)文件夹说明:
dosbox 虚拟 DOS 环境的软件 DosBox 0.72
DISK_C 虚拟的 DOS 环境的 C:\
TC20 Turbo C 2.0 程序文件
dosbox 虚拟 DOS 环境的软件 DosBox 0.72
DISK_C 虚拟的 DOS 环境的 C:\
TC20 Turbo C 2.0 程序文件
(4)delay比真实的TC中要慢很多倍(约1000倍),相当于原来的sleep
(5)Alt + Enter 可以切换全屏/窗口。
(6)为了使用方便,本软件中的graphic.lib中已经集成了EGAVGA显示驱动程序和trip、
litt、goth、sans四种英文字体的驱动,使用该graphic.lib编译连接成的exe文件可独立运行,
不需要机器上有EGAVGA驱动程序,也不需要有四种字体的驱动,但需要在源程序中initgraph
函数调用前加上以下几行:
registerbgidriver(EGAVGA_driver); /*注册登记显示驱动程序*/
registerbgifont(triplex_font); /*注册登记英文字体,共四种*/
registerbgifont(small_font); /*括号中应为小写*/
//registerbgidriver(gothic_font); /*不需要的字体,可以不登记注册*/
//registerbgidriver(sansserif_font); /*不需要的字体,可以不登记注册*/
litt、goth、sans四种英文字体的驱动,使用该graphic.lib编译连接成的exe文件可独立运行,
不需要机器上有EGAVGA驱动程序,也不需要有四种字体的驱动,但需要在源程序中initgraph
函数调用前加上以下几行:
registerbgidriver(EGAVGA_driver); /*注册登记显示驱动程序*/
registerbgifont(triplex_font); /*注册登记英文字体,共四种*/
registerbgifont(small_font); /*括号中应为小写*/
//registerbgidriver(gothic_font); /*不需要的字体,可以不登记注册*/
//registerbgidriver(sansserif_font); /*不需要的字体,可以不登记注册*/
2、
VC模拟的TC 下,setcolor 函数后边不能跟数字
好了不废话了,下面就是代码了
#include<graphics.h>
#include<math.h>
#include<conio.h>
#include<stdio.h>
#include<dos.h>
int main()
{
int gmode,gdriver=DETECT;
double i,y;
initgraph(&gdriver,&gmode,"");
#include<math.h>
#include<conio.h>
#include<stdio.h>
#include<dos.h>
int main()
{
int gmode,gdriver=DETECT;
double i,y;
initgraph(&gdriver,&gmode,"");
//在tc 下直接是“” 在VC模拟的TC下要写成 initgraph(&gdriver,&gmode,"C:\\TC20\\BGI");
do{
setcolor(RED);//在TC下可以直接写 颜色代表的数字,在VC下 setcolor 后边不能跟数字,要写字母
do{
setcolor(RED);//在TC下可以直接写 颜色代表的数字,在VC下 setcolor 后边不能跟数字,要写字母
line(0,240,640,240);
line(650,230,640,240);
line(650,250,640,240);
line(320,0,320,480);
line(310,10,320,0);
line(330,10,320,0);
for(i=-50*acos(-1);i<=50*acos(-1);i++)//相当于表示了一个区间 [-2π,2π]
{
y=-sin(i/50)*100;//i=-50π 的时候 y=sin(-π)*100=-100 ,但是在作图的时候此时的 应该在240 (x轴)的下方,所以应该变成负的再加 240 代表了 关于 x 轴(240) 对称
putpixel(i+320,y+240,BLUE);//画点函数
}
delay(500);
}while(!kbhit());
getch();
closegraph();
return 0;
}
line(650,230,640,240);
line(650,250,640,240);
line(320,0,320,480);
line(310,10,320,0);
line(330,10,320,0);
for(i=-50*acos(-1);i<=50*acos(-1);i++)//相当于表示了一个区间 [-2π,2π]
{
y=-sin(i/50)*100;//i=-50π 的时候 y=sin(-π)*100=-100 ,但是在作图的时候此时的 应该在240 (x轴)的下方,所以应该变成负的再加 240 代表了 关于 x 轴(240) 对称
putpixel(i+320,y+240,BLUE);//画点函数
}
delay(500);
}while(!kbhit());
getch();
closegraph();
return 0;
}