⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rainbow.c

📁 svga演示代码,需要安装svgalib方可运行
💻 C
字号:
#include <stdlib.h>#include <stdio.h>#include <unistd.h>#include <string.h>#include <time.h>#include <vga.h>#include <vgagl.h>#include <math.h>void draw_wjx(int x,int y,int r);int draw_bo(int pointx,int pointy);void draw_text(int x,int y,int xlarge, int ylarge,unsigned char *ch) ;int main() { 	int i,j; 	int flag; 	unsigned char *colors; 	vga_init(); 	vga_setmode(G800x600x256); 	vga_setcolor(4);	for(;;)	{	for(i=0;i<255;i++)	{		if(i%2)		{		vga_setcolor(i);		draw_wjx(200,100,50);		draw_wjx(400,100,50);		draw_wjx(600,100,50);		usleep(200000);		}		else if(i%3)		{		vga_setcolor(i);			draw_bo(0,200);		draw_bo(0,250);		draw_bo(0,300);		draw_bo(0,350);		draw_bo(0,400);		usleep(200000);		}		else		{		vga_setcolor(i);		draw_text(220,240,6,6,(unsigned char *)"神疯小组");		usleep(200000);		}	}	}	vga_getch();	vga_setmode(TEXT);//回到控制台字符模式 	free(colors);	 	return 0; } void draw_wjx(int x,int y,int r){	int m[5],n[5],i; 	float t=6.28318/5;	for(i=0;i<5;i++)	{ 		m[i]=r*cos(i*t)+x;		n[i]=r*sin(i*t)+y;	}	//vga_setcolor(5);	for(i=0;i<5;i++)		//vga_setcolor(5);		vga_drawline(m[i],n[i],m[(i+2)%5],n[(i+2)%5]);}int draw_bo(int pointx,int pointy){	int i,g;	g=pointy;	for(i=1;i<800;i++) 	{ 		vga_drawline(pointx,pointy,i,g+30*sin(i*M_PI/90)); 		pointx=i; 		pointy=g+30*sin(i*M_PI/90);	}}void draw_text(int x,int y,int xlarge, int ylarge,unsigned char *ch)     {       int   i,k,j,c,l,m,n;   	    unsigned   char   mat[16][2];       unsigned   char   mat1[16];         char   *p;       FILE   *hzk,*ywk;       //vga_setcolor(i);       hzk=fopen("hzk16","rb");       ywk=fopen("asc16","rb");       if   (hzk==NULL)       {           perror("Open   hzk16   file   error");           exit(1);       }       if(ywk==NULL){   	      perror("Open   asc16   file   error");         exit(1);       }       l=strlen(ch);       //vga_setrgbcolor(251,0,0);       for(c=0;c<l;c++)       {         if(ch[c]>127)      {         i=ch[c]-0xa0;j=ch[c+1]-0xa0;         fseek(hzk,(94*(i-1)+(j-1))*32,SEEK_SET);         fread(mat,32,1,hzk);         for(i=0;i<16;i++) 	  for(m=0;m<xlarge;m++)      		for(j=0;j<2;j++)         			for(k=0;k<8;k++)   	  			for(n=0;n<ylarge;n++)      if(mat[i][j]&(0x80>>k))               vga_drawpixel(x+c*8*xlarge+8*j*xlarge+k*xlarge+n,y+i*ylarge+m);         c++;       }else{         fseek(ywk,ch[c]*16,SEEK_SET);         fread(mat1,16,1,ywk);         for(i=0;i<16;i++)         for(k=0;k<8;k++)         if(mat1[i]&(0x80>>k)   )             vga_drawpixel(x+c*8*xlarge+k*xlarge+n,y+i*ylarge+m);       }     }     }  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -