第四讲:使用html5中的canvas标签画出一个球在指定区域内的运动

<html>
	<head>
		<title>小球在一个区域运动</title>
		<script src="../js/jscex.jscexRequire.min.js" type="text/javascript"></script>
	</head>
	
	<body>
		<canvas id="mc" width="900px" height="500px">
		</canvas>
		<script type="text/javascript">
			var canvas = document.getElementById('mc');
			var cxt = canvas.getContext('2d');
			//定义一个小球
			var ball = {
				position : {x : 100,y : 100},	//球的位置
				r : 30,	//球的半径
				vx : 300,	//球在X轴的速度
				vy : 200	//球在Y轴的速度
			}; 
			var cyc = 10;
			var somethingAsync = eval(Jscex.compile("async", function () {
				//结合物理里面的知识即可
				while (true) {
					cxt.fillStyle = "rgba(0, 0, 0, .1)";
          cxt.fillRect(0, 0, canvas.width, canvas.height);
          cxt.fillStyle = "#FA340A";
          cxt.beginPath();
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的HTML文件,实现了一个绘图板交互功能,包括画线、画圆、清空画布等功能: ```html <!DOCTYPE html> <html> <head> <title>Canvas绘图板</title> <style> canvas { border: 1px solid #000; } </style> </head> <body> <canvas id="canvas" width="500" height="500"></canvas> <br> <button onclick="drawLine()">画线</button> <button onclick="drawCircle()">画圆</button> <button onclick="clearCanvas()">清空</button> <script> var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); var isDrawing = false; var lastX = 0; var lastY = 0; function drawLine() { canvas.addEventListener("mousedown", function(e) { isDrawing = true; lastX = e.clientX - canvas.offsetLeft; lastY = e.clientY - canvas.offsetTop; }); canvas.addEventListener("mousemove", function(e) { if (isDrawing) { ctx.beginPath(); ctx.moveTo(lastX, lastY); ctx.lineTo(e.clientX - canvas.offsetLeft, e.clientY - canvas.offsetTop); ctx.stroke(); lastX = e.clientX - canvas.offsetLeft; lastY = e.clientY - canvas.offsetTop; } }); canvas.addEventListener("mouseup", function(e) { isDrawing = false; }); } function drawCircle() { canvas.addEventListener("mousedown", function(e) { ctx.beginPath(); ctx.arc(e.clientX - canvas.offsetLeft, e.clientY - canvas.offsetTop, 10, 0, 2 * Math.PI); ctx.stroke(); }); } function clearCanvas() { ctx.clearRect(0, 0, canvas.width, canvas.height); } </script> </body> </html> ``` 在这个HTML文件,我们使用Canvas标签创建了一个500x500的画布,并定义了三个按钮:画线、画圆、清空,分别对应了绘制直线、绘制圆形和清空画布三个功能。 在JavaScript代码,我们使用Canvas的getContext()方法获取了画布的2D上下文,然后定义了isDrawing、lastX和lastY三个变量,分别表示当前是否正在绘制、上一个绘制点的横坐标和纵坐标。 对于画线功能,我们在鼠标按下、移动和松开三个事件分别定义了对应的操作,使用Canvas的beginPath()、moveTo()、lineTo()和stroke()方法,完成了绘制直线的功能。 对于画圆功能,我们只需要在鼠标按下事件绘制一个半径为10的圆形即可。 对于清空功能,我们使用Canvas的clearRect()方法,将画布上的所有内容清除。 希望这个例子能够帮助你理解如何使用Canvas实现一个简单的绘图板交互功能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值