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

📄 svgadem1.c

📁 MSC或BC开发的SVGA图形开发库(允许使用300x200,640x480,80x600,1024x768等多种模式) 此开发库特别适合嵌入式系统
💻 C
📖 第 1 页 / 共 2 页
字号:

	setview(0,0,maxx,maxy);

	ret = getkey();

	return(ret);
	
}


/*********
 * DOPAL *
 *********/

char dopal(void)
{
	int x1, x2, y1, y2;
	int i, colr;
	char ret;
	char title[TITLEN];
	char buf[TITLEN];
	
	/*
	 * Set up the Title
	 */
	sprintf(title,"DEMO 4: Palette functions");
	palset(orgpal,0,255);

	/*
	 * Show palette set/get
	 */

	fillscreen(0);
	setview(0,0,maxx,maxy);
	drwstring(1,7,0,title,10,0);
	sprintf(buf,"palget(pal,beg,end),palset(pal,beg,end)");
	drwstring(1,7,0,buf,10,16);

	colr = 16;
	x1 = 10;
	x2 = maxx - 9;
	y1 = 35;
	y2 = maxy - 9;
	i = 0;
	while (y1+i < y2-i) {
		drwbox(1,colr++,x1+i,y1+i,x2-i,y2-i);
		if (colr>255)
			colr = 16;
		i++;
	}
	ret = getkey();
	if ((ret == 's') || (ret == 'q')) {
		fillscreen(0);
		setview(0,0,maxx,maxy);
		return(ret);
	}
	palset(pal,16,255);
	ret = getkey();
	if ((ret == 's') || (ret == 'q')) {
		setview(0,0,maxx,maxy);
		fillscreen(0);
		return(ret);
	}

	/*
	 * Show palette auto fade out/in
	 */
	setview(0,16,maxx,32);
	fillview(0);
	sprintf(buf,"palioauto(pal,beg,end,speed);");
	drwstring(1,7,0,buf,10,16);
	palioauto(pal,16,255,-2);
	palioauto(pal,16,255,2);
	ret = getkey();
	if ((ret == 's') || (ret == 'q')) {
		setview(0,0,maxx,maxy);
		return(ret);
	}

	/*
	 * Show palette auto fade to
	 */
	setview(0,16,maxx,32);
	fillview(0);
	sprintf(buf,"palchgauto(pal,newpal,beg,end,speed);");
	drwstring(1,7,0,buf,10,16);
	palchgauto(pal,pal2,16,255,2);
	palchgauto(pal2,pal,16,255,2);
	ret = getkey();
	if ((ret == 's') || (ret == 'q')) {
		setview(0,0,maxx,maxy);
		return(ret);
	}

	/*
	 * Show palette rotate
	 */
	setview(0,16,maxx,32);
	fillview(0);
	sprintf(buf,"palrotate(pal,beg,end,shift);");
	drwstring(1,7,0,buf,10,16);
	for(i=0;i<=240;i++) {
		palrotate(pal,16,255,2);
		palget(pal,16,255);
	}
	for(i=0;i<=120;i++) {
		palrotate(pal,16,255,-8);
		palget(pal,16,255);
	}
	ret = getkey();
	if ((ret == 's') || (ret == 'q'))
		setview(0,0,maxx,maxy);

	return(ret);

}


/***********
 * DOPRIMS *
 ***********/

char doprims(void)
{
	int x1, x2, y1, y2;
	int maxrad, radx, rady;
	int i, colr, num;
	char ret;
	char title[TITLEN];
	char buf[TITLEN];
	
	/*
	 * Set up the Title
	 */
	sprintf(title,"DEMO 1: Primitives");
	palset(orgpal,0,255);

	/*
	 * Draw some points
	 */

	fillscreen(0);
	setview(0,0,maxx,maxy);
	drwstring(1,7,0,title,10,0);
	sprintf(buf,"drwpoint(mode,color,x,y);");
	drwstring(1,7,0,buf,10,16);
	setview(0,32,maxx,maxy);
	colr = 1;
	num = maxx * 2;
	for(i=0;i<num;i++) {
		x1 = randnum(maxx);
		y1 = randnum(maxy);
		drwpoint(1,colr++,x1,y1);
		if (colr>15)
			colr = 1;
	}   
	setview(0,0,maxx,maxy);
	ret = getkey();
	if ((ret=='s') || (ret=='q'))
		return(ret);
	
	/*
	 * Draw some lines
	 */
	fillscreen(0);
	setview(0,0,maxx,maxy);
	drwstring(1,7,0,title,10,0);
	sprintf(buf,"drwline(mode,color,x1,y1,x2,y2);");
	drwstring(1,7,0,buf,10,16);
	setview(0,32,maxx,maxy);
	colr = 1;
	num = maxx / 6;
	for(i=0;i<num;i++) {
		x1 = randnum(maxx);
		y1 = randnum(maxy);
		x2 = randnum(maxx);
		y2 = randnum(maxy);
		drwline(1,colr++,x1,y1,x2,y2);
		if (colr>15)
			colr = 1;
	}   
	setview(0,0,maxx,maxy);
	ret = getkey();
	if ((ret=='s') || (ret=='q'))
		return(ret);

	/*
	 * Draw some boxes
	 */
	fillscreen(0);
	setview(0,0,maxx,maxy);
	drwstring(1,7,0,title,10,0);
	sprintf(buf,"drwbox(mode,color,x1,y1,x2,y2);");
	drwstring(1,7,0,buf,10,16);
	setview(0,32,maxx,maxy);
	colr = 1;
	num = maxx / 10;
	for(i=0;i<num;i++) {
		x1 = randnum(maxx);
		y1 = randnum(maxy);
		x2 = randnum(maxx);
		y2 = randnum(maxy);
		drwbox(1,colr++,x1,y1,x2,y2);
		if (colr>15)
			colr = 1;
	}   
	setview(0,0,maxx,maxy);
	ret = getkey();
	if ((ret=='s') || (ret=='q'))
		return(ret);

	/*
	 * Draw some circles
	 */
	fillscreen(0);
	setview(0,0,maxx,maxy);
	drwstring(1,7,0,title,10,0);
	sprintf(buf,"drwcircle(mode,color,cx,cy,radius);");
	drwstring(1,7,0,buf,10,16);
	setview(0,32,maxx,maxy);
	colr = 1;
	num = maxx / 20;
	maxrad = maxx / 2;
	for(i=0;i<num;i++) {
		x1 = randnum(maxx);
		y1 = randnum(maxy);
		radx = randnum(maxrad);
		drwcircle(1,colr++,x1,y1,radx);
		if (colr>15)
			colr = 1;
	}   
	setview(0,0,maxx,maxy);
	ret = getkey();
	if ((ret=='s') || (ret=='q'))
		return(ret);

	/*
	 * Draw some ellipses
	 */
	fillscreen(0);
	setview(0,0,maxx,maxy);
	drwstring(1,7,0,title,10,0);
	sprintf(buf,"drwellipse(mode,color,cx,cy,radiusx,radiusy);");
	drwstring(1,7,0,buf,10,16);
	setview(0,32,maxx,maxy);
	colr = 1;
	num = maxx / 20;
	maxrad = maxx / 2;
	for(i=0;i<num;i++) {
		x1 = randnum(maxx);
		y1 = randnum(maxy);
		radx = randnum(maxrad);
		rady = randnum(maxrad);
		drwellipse(1,colr++,x1,y1,radx,rady);
		if (colr>15)
			colr = 1;
	}   
	setview(0,0,maxx,maxy);

	ret = getkey();

	return(ret);

}


/************
 * DOSCROLL *
 ************/

char doscroll(void)
{
	int i, colr, num, totnum;
	int a, b, c, d;
	int x1, x2, y1, y2;
	int spcing, skip;
	char ret;
	char title[TITLEN];
	char buf[TITLEN];
	char buf2[TITLEN];
	
	/*
	 * Set up the Title
	 */
	sprintf(title,"DEMO 7: Scroll functions");
	palset(pal,0,255);
	fillscreen(0);
	setview(0,0,maxx,maxy);
	drwstring(1,7,0,title,10,0);
	
	spcing = (maxy - 32) / 5;
	skip = (int)(((float)maxx + 1.) / 320. + .9) * 2 - 1;
	num = spcing / 2 / skip;
	if (spcing / 2 != (float)spcing / 2.)
		spcing++;
	x1 = (maxx + 1) / 2 - spcing;
	y1 = (maxy + 1 - 32) / 2 + 32 - spcing;
	x2 = (maxx + 1) / 2 + spcing;
	y2 = (maxy + 1 - 32) / 2 + 32 + spcing;

	drwbox(1,12,x1++,y1++,x2--,y2--);
	colr = 16;
	sprintf(buf2,"TEXT text TEXT");

	/*
	 * Show scrollup
	 */
	setview(0,16,maxx,maxy);
	sprintf(buf,"scrollup(x1,y1,x2,y2,numlines,fillcolor);");
	drwstring(1,7,0,buf,10,16);
	setview(x1,y1,x2,y2);
	fillview(0);
	totnum = maxx / 10;
	for(i=0;i<totnum;i++) {
		a = randnum(maxx);
		b = randnum(maxy);
		c = randnum(maxx);
		d = randnum(maxy);
		drwline(1,colr,a,b,c,d);
		colr += 3;
		if (colr > 255)
			colr = 16;
	}
	drwstring(1,7,0,buf2,x1+spcing,y1+spcing);
	drwstringlt(1,7,0,buf2,x1+spcing,y1+spcing);
	drwstringrt(1,7,0,buf2,x1+spcing,y1+spcing);
	drwstringdn(1,7,0,buf2,x1+spcing,y1+spcing);

	ret = getkey();
	if ((ret=='s') || (ret=='q'))
		return(ret);

	for(i=0;i<num;i++)
		scrollup(x1,y1,x2,y2,skip,0);

	ret = getkey();
	if ((ret=='s') || (ret=='q'))
		return(ret);

	/*
	 * Show scrolllt
	 */
	setview(0,16,maxx,maxy);
	sprintf(buf,"scrolllt(x1,y1,x2,y2,numlines,fillcolor);");
	drwstring(1,7,0,buf,10,16);
	setview(x1,y1,x2,y2);
	fillview(0);
	totnum = maxx / 10;
	for(i=0;i<totnum;i++) {
		a = randnum(maxx);
		b = randnum(maxy);
		c = randnum(maxx);
		d = randnum(maxy);
		drwline(1,colr,a,b,c,d);
		colr += 3;
		if (colr > 255)
			colr = 16;
	}
	drwstring(1,7,0,buf2,x1+spcing,y1+spcing);
	drwstringlt(1,7,0,buf2,x1+spcing,y1+spcing);
	drwstringrt(1,7,0,buf2,x1+spcing,y1+spcing);
	drwstringdn(1,7,0,buf2,x1+spcing,y1+spcing);

	ret = getkey();
	if ((ret=='s') || (ret=='q'))
		return(ret);

	for(i=0;i<num;i++)
		scrolllt(x1,y1,x2,y2,skip,0);

	ret = getkey();
	if ((ret=='s') || (ret=='q'))
		return(ret);

	/*
	 * Show scrolldn
	 */
	setview(0,16,maxx,maxy);
	sprintf(buf,"scrolldn(x1,y1,x2,y2,numlines,fillcolor);");
	drwstring(1,7,0,buf,10,16);
	setview(x1,y1,x2,y2);
	fillview(0);
	totnum = maxx / 10;
	for(i=0;i<totnum;i++) {
		a = randnum(maxx);
		b = randnum(maxy);
		c = randnum(maxx);
		d = randnum(maxy);
		drwline(1,colr,a,b,c,d);
		colr += 3;
		if (colr > 255)
			colr = 16;
	}
	drwstring(1,7,0,buf2,x1+spcing,y1+spcing);
	drwstringlt(1,7,0,buf2,x1+spcing,y1+spcing);
	drwstringrt(1,7,0,buf2,x1+spcing,y1+spcing);
	drwstringdn(1,7,0,buf2,x1+spcing,y1+spcing);

	ret = getkey();
	if ((ret=='s') || (ret=='q'))
		return(ret);

	for(i=0;i<num;i++)
		scrolldn(x1,y1,x2,y2,skip,0);

	ret = getkey();
	if ((ret=='s') || (ret=='q'))
		return(ret);

	/*
	 * Show scrollrt
	 */
	setview(0,16,maxx,maxy);
	sprintf(buf,"scrollrt(x1,y1,x2,y2,numlines,fillcolor);");
	drwstring(1,7,0,buf,10,16);
	setview(x1,y1,x2,y2);
	fillview(0);
	totnum = maxx / 10;
	for(i=0;i<totnum;i++) {
		a = randnum(maxx);
		b = randnum(maxy);
		c = randnum(maxx);
		d = randnum(maxy);
		drwline(1,colr,a,b,c,d);
		colr += 3;
		if (colr > 255)
			colr = 16;
	}
	drwstring(1,7,0,buf2,x1+spcing,y1+spcing);
	drwstringlt(1,7,0,buf2,x1+spcing,y1+spcing);
	drwstringrt(1,7,0,buf2,x1+spcing,y1+spcing);
	drwstringdn(1,7,0,buf2,x1+spcing,y1+spcing);

	ret = getkey();
	if ((ret=='s') || (ret=='q'))
		return(ret);

	for(i=0;i<num;i++)
		scrollrt(x1,y1,x2,y2,skip,0);

	ret = getkey();

	return(ret);

}


/**********
 * DOTEXT *
 **********/

char dotext(void)
{
	int i, colr;
	char ret;
	char title[TITLEN];
	char buf[TITLEN];
	char buf2[TITLEN];

	/*
	 * Set up the Title
	 */
	sprintf(title,"DEMO 6: Text functions");
	palset(pal,0,255);

	/*
	 * Show alternate print directions
	 */
	fillscreen(0);
	setview(0,0,maxx,maxy);
	drwstring(1,7,0,title,10,0);
	sprintf(buf,"drwstring(mode,foregnd,bkgnd,string,x,y);");
	drwstring(1,7,0,buf,10,16);
	setview(0,32,maxx,maxy);
	sprintf(buf2,"The Quick Brown Fox Jumped Over The Lazy Dog's Back! 0123456789");
	colr = 16;
	for(i=32;i<=maxy;i+=20) {
		drwstring(1,colr,0,buf2,0,i);
		colr+=5;
		if (colr>255)
			colr = 16;
	}
	ret = getkey();
	if ((ret=='s') || (ret=='q')) {
		setview(0,0,maxx,maxy);
		fillscreen(0);
		return(ret);
	}

	fillview(0);
	setview(0,16,maxx,32);
	sprintf(buf,"drwstringlt(mode,foregnd,bkgnd,string,x,y);");
	drwstring(1,7,0,buf,10,16);
	setview(0,32,maxx,maxy);
	colr = 16;
	for(i=0;i<=maxx;i+=20) {
		drwstringlt(1,colr,0,buf2,i,maxy);
		colr+=5;
		if (colr>255)
			colr = 16;
	}
	ret = getkey();
	if ((ret=='s') || (ret=='q')) {
		setview(0,0,maxx,maxy);
		fillscreen(0);
		return(ret);
	}

	fillview(0);
	setview(0,16,maxx,32);
	sprintf(buf,"drwstringdn(mode,foregnd,bkgnd,string,x,y);");
	drwstring(1,7,0,buf,10,16);
	setview(0,32,maxx,maxy);
	colr = 16;
	for(i=maxy;i>=32;i-=20) {
		drwstringdn(1,colr,0,buf2,maxx,i);
		colr+=5;
		if (colr>255)
			colr = 16;
	}
	ret = getkey();
	if ((ret=='s') || (ret=='q')) {
		setview(0,0,maxx,maxy);
		fillscreen(0);
		return(ret);
	}

	fillview(0);
	setview(0,16,maxx,32);
	sprintf(buf,"drwstringrt(mode,foregnd,bkgnd,string,x,y);");
	drwstring(1,7,0,buf,10,16);
	setview(0,32,maxx,maxy);
	colr = 16;
	for(i=maxx;i>=0;i-=20) {
		drwstringrt(1,colr,0,buf2,i,32);
		colr+=5;
		if (colr>255)
			colr = 16;
	}
	ret = getkey();
	setview(0,0,maxx,maxy);
	fillscreen(0);

	return(ret);

}

⌨️ 快捷键说明

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