车类型名称大全图片:c语言高手请进(1)

来源:百度文库 编辑:高校问答 时间:2024/05/01 22:57:36
#include <stdio.h>
#include <dos.h>
#include <math.h>
long Addr[768];
int Mode;

Set_Mode (int mode)
{
union REGS r;
r.h.ah=0;
r.h.al=mode;
int86 (0x10,&r,&r);
}

Set_Graphics_Mode (unsigned x,unsigned y)
{
long i; // 定义一个长字符i
if ((x<321)&&(y<201)) { // 如果x <321且y<201
Set_Mode (0x13);
Mode=0x13;
for (i=0;i<200;i++) Addr[i]=320*i;
}
else if ((x<641)&&(y<401)) {
Set_Mode (0x5c);
Mode=0x5c;
for (i=0;i<400;i++) Addr[i]=640*i;
}
else if ((x<641)&&(y<481)) {
Set_Mode (0x5d);
Mode=0x5d;
for (i=0;i<480;i++) Addr[i]=640*i;
}
else if ((x<641)&&(y<481)) {
Set_Mode (0x5d);
Mode=0x5d;
for (i=0;i<480;i++) Addr[i]=640*i;
}
else if ((x<801)&&(y<601)) {
Set_Mode (0x5e);
Mode=0x5e;
for (i=0;i<600;i++) Addr[i]=800*i;
}
else if ((x<1025)&&(y<769)) {
Set_Mode (0x62);
Mode=0x62;
for (i=0;i<768;i++) Addr[i]=1024*i;
}
else {
Set_Mode (3);
printf ("Not support this mode .\n");
getch ();
}
}

set_pattern ()
{
int i;
unsigned char pat[256][3];
struct SREGS inreg;
union REGS reg;

pat[0][0]=0;pat[0][1]=0;pat[0][2]=0;
for (i=1;i<=255;i++) {
pat[i][0]=(unsigned char)((float)(abs(i-127)*63)/127.0+0.5);
pat[i][1]=(unsigned char)((float)(abs(i-127)*63)/127.0+0.5);
pat[i][2]=63;
}
reg.x.ax=0x1012;
reg.x.bx=0;
reg.x.cx=256;
reg.x.dx=FP_OFF(pat);
inreg.es=FP_SEG(pat);
int86x (0x10,®,®,&inreg);
}

plot (int x,int y,unsigned char color)
{
long offset;
char Page;
unsigned char far *address;
switch (Mode) {
case 0x13:
offset=Addr[y]+x;
address=(unsigned char far *)(0xa0000000L+offset);
*address=color;
break;
case 0x5c:
case 0x5d:
case 0x5e:
offset=Addr[y]+x;
Page=(offset>>16);
outportb (0x3c4,0xe);
outportb (0x3c5,Page^0x02);
offset=offset&65535;
address=(unsigned char far *)(0xa0000000L+offset);
*address=color;
break;
case 0x62:
offset=Addr[y]+x;
Page=y>>6;
outportb (0x3c4,0xe);
outportb (0x3c5,Page^0x02);
offset=offset&65535;
address=(unsigned char far *)(0xa0000000L+offset);
*address=color;
break;
default:
break;
}
}
接着的在(2)里

直接写显存作图
不知道你要什么?