canvas--贝塞尔曲线
---动画实现贝塞尔曲线---
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | <! DOCTYPE html> < html lang="en"> < head > < meta charset="UTF-8"> < meta name="viewport" content="width=device-width, initial-scale=1.0"> < title >Document</ title > </ head > < style > div{ width: 50px; height: 50px; background: purple; position: absolute; top: 0px; left: 0px; animation-name: sport; animation-duration: 5s; animation-timing-function: cubic-bezier(.17,.67,1,-0.04) /* 三次贝塞尔曲线 */ } @keyframes sport{ from{ top: 0px; left: 0px; } to{ top: 600px; left: 600px; } } </ style > < body > <!-- 7day --> <!-- 实例网址https://cubic-bezier.com/ --> < div ></ div > </ body > </ html > |
------二次贝塞曲线 ------
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <! DOCTYPE html> < html lang="en"> < head > < meta charset="UTF-8"> < meta name="viewport" content="width=device-width, initial-scale=1.0"> < title >Document</ title > < style > canvas{ border: 1px dashed gray; } </ style > < script type="text/javascript"> window.onload = function() { // 绘制二次贝塞尔曲线 // 格式:ctx.quadraticCurveTo(cx,cy,x2,y2); // 得到canvas对象 var oCanvas = document.getElementById("canvas"); if(oCanvas.getContext){ // 得到2d上下文 var oContext = oCanvas.getContext("2d") // 绘制 // 开始点 oContext.moveTo(150,150); oContext.quadraticCurveTo(300,150,400,400); oContext.strokeStyle = 'green'; // 描边路径 oContext.stroke() } } </ script > </ head > < body > <!-- 实例网址 --> <!-- http://blogs.sitepointstatic.com/examples/tech/canvas-curves/quadratic-curve.html --> < canvas id="canvas" width="600" height="600"></ canvas > </ body > </ html > |
----三次贝塞尔曲线---
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <! DOCTYPE html> < html lang="en"> < head > < meta charset="UTF-8"> < meta name="viewport" content="width=device-width, initial-scale=1.0"> < title >Document</ title > < style > canvas{ border: 1px dashed gray; } </ style > < script > window.onload = function(){ // 绘制三次贝塞尔曲线 // 格式:ctx.bezierCurveTo(ct1,cy1,cx2,cy2,x,y); var oCanvas = document.getElementById("canvas"); if(oCanvas.getContext){ var oContext = oCanvas.getContext("2d"); // 开始绘制路径 oContext.beginPath(); // 起始点 oContext.moveTo(200,200); // 绘制三次贝塞尔曲线 oContext.bezierCurveTo(300,200,350,250,500,500); // 描边路径 oContext.stroke(); } } </ script > </ head > < body > <!-- 有两个控制点 --> < canvas id="canvas" width="600" height="600"></ canvas > </ body > </ html > |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?