HTML5 Canvas 画纸飞机组件
纸飞机模拟一个物体在规定设计轴线偏离方位。
1 //三角形 2 function DrawTriangle(canvas, A, B, C) { 3 //画个三角形,“A、B、C”是顶点 4 with (canvas) { 5 moveTo(A[0], A[1]); 6 lineTo(B[0], B[1]); 7 lineTo(C[0], C[1]); 8 lineTo(A[0], A[1]); 9 } 10 } 11 12 // 画纸飞机 13 //headx,heady 纸飞机头坐标 14 //footx,footy 纸飞机尾巴坐标 15 function DrawDarts(canvas, headx, heady, footx, footy) { 16 var c = document.getElementById(canvas); 17 var cxt = c.getContext("2d"); 18 19 //半径 R 20 var R = 150; 21 22 //转换头坐标 23 var headx1 = R + headx; 24 var heady1 = R - heady; 25 //转换尾坐标 26 var footx1 = R + footx; 27 var footy1 = R - footy; 28 29 //左尾 30 var footxl = R + (footx - 50); 31 var footyl = R - footy; 32 33 //右尾 34 var footxr = R + (footx + 50); 35 var footyr = R - footy; 36 37 //上尾 38 var footxu = R + footx; 39 var footyu = R - (footy - 50); 40 41 //下尾 42 var footxd = R + footx; 43 var footyd = R - (footy + 50); 44 45 46 //判断头x和尾x的大小 47 cxt.beginPath(); 48 cxt.strokeStyle = "black"; 49 cxt.fillStyle = "#6C8D9F"; 50 var A = new Array(headx1, heady1); 51 var B = new Array(footx1, footy1); 52 // alert(headx1); 53 // alert(footx1); 54 if (parseInt(headx1) - parseInt(footx1) <= 0) 55 var C = new Array(footxr, footyr); 56 else 57 var C = new Array(footxl, footyl); 58 DrawTriangle(cxt, A, B, C); 59 60 cxt.fill(); 61 cxt.closePath(); 62 cxt.stroke(); 63 64 //画头、上、下尾巴 形成的三角形 65 cxt.beginPath(); 66 cxt.strokeStyle = "black"; 67 cxt.fillStyle = "#6C8D9F"; 68 var A1 = new Array(headx1, heady1); 69 var B1 = new Array(footxu, footyu); 70 var C1 = new Array(footxd, footyd); 71 DrawTriangle(cxt, A1, B1, C1); 72 cxt.fill(); 73 cxt.closePath(); 74 cxt.stroke(); 75 76 cxt.beginPath(); 77 cxt.strokeStyle = "black"; 78 cxt.fillStyle = "#6C8D9F"; 79 var A2 = new Array(headx1, heady1); 80 var B2 = new Array(footx1, footy1); 81 if (parseInt(headx1) - parseInt(footx1) <= 0) 82 var C2 = new Array(footxl, footyl); 83 else 84 var C2 = new Array(footxr, footyr); 85 DrawTriangle(cxt, A2, B2, C2); 86 cxt.fill(); 87 cxt.closePath(); 88 cxt.stroke(); 89 }
html 页面调用
<!DOCTYPE HTML> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>HTML Canvas 画纸飞机</title> <script type="text/javascript" src="Darts.js"></script> </head> <body> <canvas id="can" width="300" height="300" style="border: 1px solid #00F">浏览器不支持HTML5!</canvas> <script type="text/javascript" charset="utf-8"> DrawDarts("can", -10, 10, 30, -30) </script> </body> </html>
预览效果图
效果图2:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?