DOS(Disk Operating System)磁盘操作系统。
让人怀恋的DOS年代,没有凌乱的API,只有经典的头文件,只是TC编辑器缺乏人性化设计,谁叫它出生于1987年呢!22年后C的传奇依然继续,ta的地位至今还没有种语言打破。记得大一时就恋上C,恋上更加的底层,似乎站在巨人肩膀上不是那个舒服,我讨厌束缚,追求强大的技术。但说来也惭愧,至今还未明白各个语言间的特性。
由于图形学课实验,算法实验DDA直线,配置环境就够我受的:
DOS常用头文件描述:
头文件 头文件中所声明函数的功能描述
<assert.h> 在程序执行过程中设定插入点,便于程序员进行究错工作
<time.h> 处理时间,便于程序员使用到系统的时间
<string.h> 对字符串的各种处理
<ctype.h> 对字符的相关处理
<graphics.h> 与在图形界面作图有关的处理
BGI是一个图形驱动文件。TURBO C系统的图形库GRAPHICS.H GRAPHICS.LIB *.BGI(显示驱动程序),在系统编译源程序时,只是把GRAPHICS.H及GRAPHICS.LIB装入运行程序中,但并没有把相应的驱动程序装入到执行程序中,所以程序在运行时要根据DriverPath提供的路径查找驱动程序?这样所生成的执行程序就不能脱离驱动程序运行,如果在别的机器(没有相应的驱动程序)上运行时,就会出现下面信息:
BGI ERROR:GRAPHICS NOT INITALIZED(USE INITGRAPH)
1.把相应的驱动程序(*.BGI)转换成目标代码(*.OBJ)
C:/TC>BGIOBJ EGAVGA EGAVGA
(如果提示找不命令,设置一下TC的环境变量到操作系统path中例如:C:/Program Files/WINYES/TC201E/BIN)
2.把生成的目标代码加入到图形库(GRAPHICS.LIB)中
c:/TC>TLIB GRAPHICS.LIB+EGAVGA.OBJ
3 登记驱动程序 要在initgraph()前运行:
registerbgidriver(EGAVGA-driver)
例如:
-------
#include <graphics.h>
int Drive,Mode=DETECT;
initgraph(&Drive,&Mode,""); //图形显示器、显示模式、路径自动检测运行时需要在当前目录下存在 EGAVGA.BGI文件在TC/BGI目录下
-------
如果编译后的.exe文件在另外一个目录(如编译后的.exe文件在D:/MyTc 目录下,而编译器的程序和.BGI文件在C:/Turboc/bin 目录下,则需要填上BGI文件的路径
例如:
initgraph(&Drive,&Mode,"C://Turboc//bgi");
EGAVGA.BGI 要放到同一个目录 才能运行1.c
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <dos.h>
dda_line(float x1,float y1,float x2,float y2)
{
float x,y,n,t,dx,dy;
dx=x2-x1;
dy=y2-y1;
n=fabs(dx);
t=fabs(dy);
if(t>n) n=t;
if(n!=0.0){
dx=dx/n;dy=dy/n;
}
n=(int)n;
x=x1+0.5;y=y1+0.5;
setcolor(1);
putpixel(x,y,11);
while(n>0){
x=x+dx;y=y+dy;n--;putpixel(x,y,11);
}
putpixel(x2+0.5,y2+0.5,11);
getch();
}
void main()
{
int gdriver=DETECT,mode;
registerbgidriver(EGAVGA_driver);
initgraph(&gdriver,&mode,"");
dda_line(0.0,0.0,100.0,25.0);
clrscr();
getch();
closegraph();
}
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5万+

被折叠的 条评论
为什么被折叠?



