fillStroke画出多彩图形

本文介绍如何使用HTML和JavaScript在网页上创建一个动态彩色方格画布,通过循环遍历并填充不同颜色的方块,实现简单的图形绘制效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!doctype html>
<html>
<canvas width=300px height=300px id="mycanvas" style="border:3px solid blue"></canvas>
<script>
	var mycanvas = document.getElementById("mycanvas");
	var context = mycanvas.getContext("2d");
	
	//context.fillStyle = "red";
	for(var i=0;i<6;i++)
	{
		for(var j=0;j<6;j++)
		{
			//context.beginPath();
			context.fillStyle = 'rgb('+Math.floor(255-42.5*j)+','+Math.floor(255-42.5*i)+',0)';
			//context.fillStyle = "red";
			context.fillRect(50*i,50*j,50,50);
			//context.strokeStyle = "green";
			//context.strokeRect(50*i,50*j,50,50);
		}
	}
</script>  
</html>


效果如下



三维图形c语言编写,可以缩放图形。 /* Note:Your choice is C IDE */ #include "stdio.h" #include "graphics.h" #include "math.h" void hua(int T[8][3]) { moveto(T[0][0]/T[0][2],T[0][1]/T[0][2]); lineto(T[1][0]/T[1][2],T[1][1]/T[1][2]); lineto(T[2][0]/T[2][2],T[2][1]/T[2][2]); lineto(T[3][0]/T[3][2],T[3][1]/T[3][2]); lineto(T[0][0]/T[0][2],T[0][1]/T[0][2]); moveto(T[4][0]/T[4][2],T[4][1]/T[4][2]); lineto(T[5][0]/T[5][2],T[5][1]/T[5][2]); lineto(T[6][0]/T[6][2],T[6][1]/T[6][2]); lineto(T[7][0]/T[7][2],T[7][1]/T[7][2]); lineto(T[4][0]/T[4][2],T[4][1]/T[4][2]); moveto(T[0][0]/T[0][2],T[0][1]/T[0][2]); lineto(T[4][0]/T[4][2],T[4][1]/T[4][2]); moveto(T[1][0]/T[1][2],T[1][1]/T[1][2]); lineto(T[5][0]/T[5][2],T[5][1]/T[5][2]); moveto(T[2][0]/T[2][2],T[2][1]/T[2][2]); lineto(T[6][0]/T[6][2],T[6][1]/T[6][2]); moveto(T[3][0]/T[3][2],T[3][1]/T[3][2]); lineto(T[7][0]/T[7][2],T[7][1]/T[7][2]); } /*/////////////////////////////////////////////////////////////////////////*/ void x(int T[8][3],float af) { int i; float theta =0.00017* af; for(i=0;i<8;i++) { T[i][0]=T[i][0]; T[i][1]=T[i][0]*0+T[i][1]*cos(theta)+T[i][2]*(-sin(theta)); T[i][2]=T[i][0]*0+T[i][1]*sin(theta)+T[i][2]*cos(theta); } hua(T); } /*//////////////////////////////////////////////////////////////////////*/ void y(int T[8][3],float af) { int i; float theta =0.00017* af; for(i=0;i<8;i++) { T[i][0]=T[i][0]*cos(theta)+T[i][2]*sin(theta); T[i][1]=T[i][1]; T[i][2]=T[i][0]*(-sin(theta))+T[i][2]*cos(theta); } hua(T); } /*/////////////////////////////////////////////////////////////////////////*/ void z(int T[8][3],float af) { int i; float theta =0.00017* af; for(i=0;i<8;i++) { T[i][0]=T[i][0]*cos(theta)+T[i][1]*(-sin(theta)); T[i][1]=T[i][1]*sin(theta)+T[i][1]*cos(theta); T[i][2]=T[i][2]; } hua(T); } /*//////////////////////////////////////////////////////////////*/ void projection(int T[8][3],float af,float af1) { int i; float theta =0.017* af; float theta1 =0.017* af1; for(i=0;i<8;i++) { T[i][0]=T[i][0]*cos(theta)+T[i][1]*(-sin(theta)); T[i][1]=0; T[i][2]=T[i][0]*(-sin(theta)*sin(theta1))+T[i][1]*(-cos(theta)*sin(theta1))+T[i][2]*cos(theta1); } hua(T); } /*////////////////////////////////////////////////////////////////////*/ void perspective(int T[8][4],float af,float af1,float q) { int i; float theta =0.017* af; float theta1 =0.017* af1; for(i=0;i<8;i++) { T[i][0]=T[i][0]*cos(theta)+T[i][1]*(-sin(theta)); T[i][1]=0; T[i][2]=T[i][0]*(-sin(theta)*sin(theta1))+T[i][1]*(-cos(theta)*sin(theta1))+T[i][2]*cos(theta1); T[i][3]=T[i][0]*q*sin(theta)*cos(theta1)+T[i][1]*q*cos(theta)*cos(theta1)+T[i][2]*q*sin(theta1)+T[i][3]; } hua(T); } /*//////////////////////////////////////////////////////////////////////*/ void Zperspective(int T[8][3]) { int i; for(i=0;i<8;i++) { T[i][0]=T[i][0]*0.707+T[i][1]*(-0.707); T[i][1]=0; T[i][2]=T[i][0]*(-0.408)+T[i][1]*(-0.408)+T[i][2]*(0.816); } hua(T); } /*==============================================================================================================*/ main() { int gdriver=DETECT,gmode; int T[8][3]={530,390,1,500,420,1,560,420,1,590,390,1,530,450,1,500,480,1,560,480,1,590,450,1}; int TT[8][3]={80,50,1,50,80,1,110,80,1,140,50,1,80,110,50,140,110,140,140,110,80,110,1}; float af,af1,q; initgraph(&gdriver,&gmode,""); cleardevice(); setbkcolor(9);setcolor(4); hua(T); printf("input af:"); scanf("%f",&af); x(T,af); /*****************************/ printf("input af:"); scanf("%f",&af); x(T,af); /*****************************/ printf("input af:"); scanf("%f",&af); x(T,af); /*****************************/ printf("input af:"); scanf("%f",&af); y(T,af); /*****************************/ printf("input af:"); scanf("%f",&af); z(T,af); /*****************************/ /* printf("input af,af1:"); scanf("%f%f",&af,&af1); projection(T,af,af1); printf("input af,af1,q:"); scanf("%f%f%f",&af,&af1,&q); perspective(T,af,af1,q); Zperspective(T); */ getch(); closegraph(); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值