c语言代码运行成图指令代码,C语言图形编程代码.doc

news/2024/10/20 8:49:22/

C语言图形编程代码

C语言图形编程代码

自己以前编写的C语言图形编程代码

自己以前编写的图形编程代码实现DOS下256BMP图片显示,中文注释,中文汉字显示

写的不好,给大家交流与学习,TC3.0与TC2.0下编译通过,实DOS下才能够运行

VGA256.C文件

/*.................................................*/

#include

#include

#define maxx 800 /*这里决定了分辨率为800*600,方便屏幕绘图*/

#define maxy 600

unsigned char far *video_buffer=(unsigned char far *)0xA0000000L;

char color=2;

void vga256()

{

union REGS r;

r.x.bx=0x103; /*这里修改成适合你显卡驱动800*600的中断就可以了,我的是英特尔810的集成显卡驱动*/

r.x.ax=0x4f02;

int86(0x10,&r,&r);

}

void fy(int xx)

{ /*分页*/

union REGS r;

r.x.ax=0x4f05;

r.x.bx=0;

r.x.dx=xx;

int86(0x10,&r,&r);

}

void fast(int x,int y)

{ /*写点程序代码*/

static long i=0;

int xx=0;

static int t=0;

if(x

i=y;

i*=maxx;

i+=x;

xx=i>>16;

i&=0xffff;

if(t!=xx) fy(xx);

*(video_buffer+i)=color;

t=xx;

}

}

Hz.C文件

/*.................................................*/

#include

char bit[8]={128,64,32,16,8,4,2,1};

void openhz(char hz0,char hz1,char *bitdata) { /* 打开字庫*/

FILE *st;

long fpos;

fpos=32L*(((unsigned char)hz0-161)*94+((unsigned char)hz1-161));

if((st=fopen("hzk16","rb"))==NULL) /*打开字库文件hzk16,该文件可以在UCDOS里面找到*/

{

printf("open File error!\n");

exit(0);

}

fseek(st,fpos,SEEK_SET);

fread(bitdata,32,1,st);

fclose(st);

}

void writehz(char hz0,char hz1,int x,int y) /*显示汉字*/

{

register int i,j;

unsigned vpos;

char bitdata[32];

openhz(hz0,hz1,bitdata);

for(i=0;i<16;i++)

for(j=0;j<8;j++)

{

if(bitdata[2*i]&bit[j])

fast(x+j,i+y);

if(bitdata[2*i+1]&bit[j])

fast(x+8+j,i+y);

}

}

int printfhz(char *str,int x,int y) /*显示汉字串*/

{

int num,i,xx;

num=strlen(str);

xx=x;

for(i=0;i


http://www.ppmy.cn/news/351284.html

相关文章

C语言编程之学习putpixel画点

问题描述&#xff1a;学习putpixel画点。 程序源码&#xff1a; #include "stdio.h" #include "graphics.h" void main() { int i,j,driverVGA,modeVGAHI; initgraph(&driver,&mode,""); setbkcolor(YELLOW); for(i50;i<230;i20)fo…

后端(二):Servlet

我们上一张聊的是Tomcat&#xff0c;它其实就是一个 HTTP 服务器&#xff0c;而Servlet 是基于 Tomcat 的 原生api &#xff0c;除了 Servlet&#xff0c;后面还有聊到很多 api 。 Servlet 是什么 Servlet&#xff08;Server Applet&#xff09;是Java Servlet的简称&#xf…

面试专题:Mysql

1.说说自己对于 MySQL 常见的两种存储引擎&#xff1a;MyISAM与InnoDB的理解 关于二者的对比与总结: 1.count运算上的区别&#xff1a;因为MyISAM缓存有表meta-data&#xff08;行数等&#xff09;&#xff0c;因此在做COUNT(*)时对于一个结构很好的查询是不需要消耗多少资源的…

CV方向如何找到适合自己的研究创新点?

做CV的论文创新的一些思路与方向。分别是无事生非&#xff0c;后浪推前浪&#xff0c;推陈出新&#xff0c;出奇制胜。 无事生非 在原始的数据集上加一些噪声&#xff0c;例如随机遮挡&#xff0c;或者调整饱和度亮度什么的&#xff0c;主要是根据具体的任务来增加噪声或扰动&a…

微屁嗯

https://www.cnblogs.com/replaceroot/p/9981296.html 转载于:https://www.cnblogs.com/marry215464/p/10381747.html

013_熔岩巧克力

原料&#xff1a;黑巧克力&#xff1a;280g黄油.220g.鸡蛋4个.医是4个.砂糖80g低粉120g朗姆酒适是&#xff08;增加风味&#xff09; 工艺&#xff1a; 1、将黑巧黄油分别隔水融化备用&#xff0c;然后混成巧克力装&#xff08;混度控制在55&#xff08;左右&#xff09; 2、将…

企飞科技微推贝贝视频号直播间互动点赞定制系统

过去两周&#xff0c;微信视频号的存在感越来越强。 因为在朋友圈强行置顶视频号的直播内容&#xff0c;微信甚至被“吐槽”上了微博热搜。虽然微信方面已经将其下线&#xff0c;但围绕着视频号近期一系列功能更新的争论却没有停止。 上线十个月&#xff0c;视频号迭代速度也越…

windows企微应用双开/多开

说明&#xff1a;此方法是电脑应用双开的最便捷、也最安全方法&#xff08;目前而言&#xff09;。 环境&#xff1a; windows系统电脑 企业微信PC版 方法步骤&#xff1a; 1、打开注册表 按WinR&#xff0c;快速调出【运行】工具&#xff0c;然后输入 regedit&#xff0c;然…