zoukankan      html  css  js  c++  java
  • Canvas中点到点的路径运动

     /*随机生成两个点,然后以两点为端点,进行运动,主要使用了SetInterval,对画布进行不断的擦除描绘的操作*/
    1
    <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title></title> 6 </head> 7 <body> 8 <canvas id="dir" width="300" height="300"></canvas> 9 <script type="text/javascript"> 10 var canvas = document.getElementById("dir"); 11 var ctx = canvas.getContext("2d"); 12 var org = { 13 x: Math.random()*canvas.width, 14 y: Math.random() * canvas.height 15 }; 16 var now = { 17 x: Math.random() * canvas.width, 18 y: Math.random() * canvas.height 19 }; 20 var newxy = { 21 x: 0, 22 y: 0 23 }; 24 function init() { 25 ctx.beginPath(); 26 ctx.moveTo(org.x, org.y); 27 ctx.lineTo(now.x, now.y); 28 ctx.stroke(); 29 math(); 30 } 31 32 var i = 1; 33 function math() { 34 var wid = Math.abs(now.x - org.x);//x轴的长,绝对值 35 var hei = Math.abs(now.y - org.y);//y轴长 36 var length = Math.pow(Math.pow(wid, 2) + Math.pow(hei, 2), 1 / 2);//(长平方+宽平方)开根 ,其实就是直角三角关系 37 if (i < length) {//通过SetInterval,按照Length方向每次运行1px 38 if (org.x < now.x) { 39 newxy.x = org.x +wid / length * i; 40 } 41 else { 42 newxy.x = org.x - wid / length * i; 43 } 44 if (org.y < now.y) { 45 newxy.y = org.y + hei / length * i; 46 } 47 else { 48 newxy.y = org.y - hei / length * i; 49 } 50 51 i++; 52 } 53 comment(); 54 } 55 function comment() { 56 ctx.beginPath(); 57 ctx.arc(newxy.x, newxy.y, 3, 0, Math.PI * 2, true); 58 ctx.stroke(); 59 60 } 61 function clean() { 62 ctx.clearRect(0, 0, canvas.width, canvas.height); 63 } 64 setInterval(function () { 65 clean(); 66 init(); 67 }, 10); 68 window.onload("load", init(), true); 69 </script> 70 71 </body> 72 </html>
  • 相关阅读:
    CodeForces 58C Trees
    【转】二分匹配题集
    HDU2604 Queuing
    HDU1281 棋盘游戏
    HDU3360 National Treasures
    HDU2444 The Accomodation of Students
    HDU1498 50 years, 50 colors
    HDU1068 Girls and Boys
    【转】常用的latex宏包
    【转】网络流题集
  • 原文地址:https://www.cnblogs.com/lm1107/p/4788705.html
Copyright © 2011-2022 走看看