HTML5 Canvas组件绘制太极图案

一实现思路:

实现原理主要是利用HTML5的Canvas组件提供的path函数功能来绘制圆,首先绘

制两个半圆,分别为黑色和白色,组成一个圆,绘制完成以后再分别绘制一个黑色

和白色的圆在绘制好的黑白圆之内,半径恰好是黑白大圆一半。 最后在绘制好的两

个黑白小圆内分别填充白色和黑色的点,半径大小为10pixel左右。


二程序效果如下:


三关键程序解析:

绘制半圆的程序,其中200,200表示开始绘制圆心点坐标,第三个参数150表示绘制圆的半径

第四个参数表示开始角度,第五个参数表示结束角度,最后一个参数表示是否为顺时针或者逆时针

绘制白色半圆的代码如下:

		ctx.fillStyle="#fff";
		ctx.beginPath(); 
		ctx.arc(200, 200, 150, 1.5*Math.PI, Math.PI/2, false);
		ctx.closePath();
		ctx.fill();

绘制黑色半圆的代码如下:

		ctx.fillStyle="#000";
		ctx.beginPath(); 
		ctx.arc(200, 200, 150, Math.PI/2, 1.5*Math.PI, false);
		ctx.closePath();
		ctx.fill();

在太极图案中添加文字的代码使用了透明处理,Canvas全局透明度设置函数

如下:

		// set transparency value  
		ctx.globalAlpha = 0.2;

绘制文字的代码如下:

		// Draw semi transparent text
		ctx.fillStyle = "#f00";
		ctx.font = "32pt Arial";
		ctx.fillText("Hello", 220, 200);
		ctx.fillText("Canvas", 100, 250);

程序完全JavaScript代码如下:

	window.onload = function() {
		var cvs = document.getElementById("canvas-path");
		ctx = cvs.getContext("2d");

		// Create circle, radius = 150
		// start point(x, y), radius, start angle, end angle, boolean antiClockWise
		ctx.fillStyle="#fff";
		ctx.beginPath(); 
		ctx.arc(200, 200, 150, 1.5*Math.PI, Math.PI/2, false);
		ctx.closePath();
		ctx.fill();
		ctx.fillStyle="#000";
		ctx.beginPath(); 
		ctx.arc(200, 200, 150, Math.PI/2, 1.5*Math.PI, false);
		ctx.closePath();
		ctx.fill();
		
		// draw sub circle
		// start point(x, y), radius, start angle, end angle, boolean antiClockWise
		ctx.fillStyle="#000";
		ctx.beginPath(); 
		ctx.arc(200, 275, 75, 0, Math.PI*2, false); 
		ctx.closePath();
		ctx.fill();
		ctx.fillStyle="#fff";
		ctx.beginPath(); 
		ctx.arc(200, 125, 75, 0, Math.PI*2, false);
		ctx.closePath();
		ctx.fill();
		
		// fill black and white point
		ctx.fillStyle="#fff";
		ctx.beginPath(); 
		ctx.arc(200, 275, 10, 0, Math.PI*2, false);
		ctx.closePath();
		ctx.fill();
		ctx.fillStyle="#000";
		ctx.beginPath(); 
		ctx.arc(200, 125, 10, 0, Math.PI*2, false);
		ctx.closePath();
		ctx.fill();
		
		// set transparency value  
		ctx.globalAlpha = 0.2;  
		  
		// Draw semi transparent text
		ctx.fillStyle = "#f00";
		ctx.font = "32pt Arial";
		ctx.fillText("Hello", 220, 200);
		ctx.fillText("Canvas", 100, 250);
		ctx.globalAlpha = 1.0; 
		ctx.shadowOffsetX = 2;  
		ctx.shadowOffsetY = 2;  
		ctx.shadowBlur = 2;  
		ctx.shadowColor = "rgba(0, 0, 0, 0.5)";  
		ctx.fillStyle = "#000";
		ctx.font = "20px Times New Roman";
		ctx.fillText("-created by gloomyfish", 100, 30);
	};

我为什么要在插图上加上我的名字,因为发现文章被转载的时候居然没有被标出来!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要在 HTML5Canvas绘制游戏地图,可以按照以下步骤进行: 1. 定义地图数据结构 首先需要定义一个合适的数据结构来存储游戏地图的信息,例如可以使用二维数组来表示地图,数组中的每个元素表示一个地图块,可以用数字或字符串来表示不同的地图块类型。 2. 绘制地图块 使用 Canvas 的 2D 上下文对象(CanvasRenderingContext2D)的绘制方法,如 fillRect()、strokeRect()、drawImage() 等方法,来绘制地图块。可以根据地图数据结构中的每个元素来确定绘制的位置和类型。 3. 绘制游戏元素 除了地图块外,游戏中还有其他的元素需要绘制,如人物、怪物、道具等。可以根据游戏元素的位置和类型,使用 Canvas绘制方法来绘制它们。 4. 处理用户输入 在游戏中,用户的输入操作需要被捕捉并处理。可以使用 Canvas 的事件监听器(如 click、mousemove 等事件)来捕捉用户的输入,并根据用户的输入来更新游戏状态和绘制内容。 5. 实现游戏逻辑 最后,需要实现游戏的逻辑,如人物的移动、怪物的行为、道具的效果等。在 Canvas绘制游戏元素的同时,需要更新它们的状态,并根据游戏逻辑来决定它们的行为。 以上就是在 HTML5Canvas绘制游戏地图的大致步骤。在实际开发中,还需要考虑性能、交互、美术效果等方面的问题,需要综合考虑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gloomyfish

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值