<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body bgcolor="#000"> <div style="width:1000px;height:600px;background-color:#fff;"> <canvas id="screen" width="1000" height="600">骚瑞,您的浏览器不支持canvas</canvas> </div> <script type="text/javascript"> var $=function(id){ return document.getElementById(id); }; var screen=document.getElementById("screen"), context=screen.getContext("2d"); var boldValue=10, t=0, d=0, x=0, y=0, mousePoints=[], stopV=0, isDraw=false; function drawPoint(x,y,c,b) { !b && (b=2); context.fillStyle=c || "red"; context.fillRect(x,y,b,b); } function drawBall(x,y,r){ context.fillStyle="red"; context.beginPath(); context.arc(x,y,r,0,Math.PI*2,true); context.closePath(); context.fill(); } function getPointsDistance(point1,point2){ return Math.sqrt(Math.pow(point1[0]-point2[0],2) + Math.pow(point1[1]-point2[1],2)); } function drawLine(x1,y1,x2,y2,b1,b2){ var xDirection=(x2-x1)/Math.abs(x2-x1); var yDirection=(y2-y1)/Math.abs(y2-y1); var xDistance=x2-x1; var yDistance=y2-y1; var xPercentage=1/Math.abs(x2-x1); var yPercentage=1/Math.abs(y2-y1); var list; if(Math.abs(x1-x2)>=Math.abs(y1-y2)){ list=getList(b1,b2,Math.abs(xDistance)); for(var i=0;i<=Math.abs(xDistance);i++){ x1+=xDirection; y1=y1+yDistance*xPercentage; drawBall(x1,y1,list[i]); boldValue=list[i]; } } else{ list=getList(b1,b2,Math.abs(yDistance)); for(var i=0;i<=Math.abs(yDistance);i++){ y1+=yDirection; x1=x1+xDistance*yPercentage; drawBall(x1,y1,list[i]); boldValue=list[i]; } } } function getList(m,n,l){ var v=(n-m)/l, ret=[m]; for(var i=0;i<l;i++){ ret.push(ret[i]+v); } return ret; } screen.addEventListener("mousedown",function(evt){ boldValue=5; x=evt.clientX, y=evt.clientY; isDraw=true; }); screen.addEventListener("mouseup",function(evt){ isDraw=false; x=evt.clientX, y=evt.clientY; }); screen.addEventListener("mousemove",function(evt){ var x2=evt.clientX, y2=evt.clientY; d=getPointsDistance([x,y],[x2,y2]); var b2=Math.max(boldValue-(d/80)*boldValue,1); isDraw && drawLine(x,y,x2,y2,boldValue,b2); x=x2; y=y2; }); setInterval(function(){ boldValue=Math.min(30,boldValue+1); if(isDraw){ drawBall(x,y,boldValue); } },50); </script></body> </html>
你好,我急用这个,下载连接挂了,麻烦能补发一下吗 ?感谢!
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· Vite CVE-2025-30208 安全漏洞
· 《HelloGitHub》第 108 期
· MQ 如何保证数据一致性?
· 一个基于 .NET 开源免费的异地组网和内网穿透工具
2011-08-28 w3ctech 2011 北京站(组图)