您现在的位置是:网站首页> 编程资料编程资料
canvas仿写贝塞尔曲线的示例代码HTML5 Canvas中使用路径描画二阶、三阶贝塞尔曲线使用canvas绘制贝塞尔曲线用html5的canvas画布绘制贝塞尔曲线完整代码
2023-10-13
484人已围观
简介 这篇文章主要介绍了canvas仿写贝塞尔曲线的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
天正在等烟雨,而我在等你,啦啦啦,欢迎关注我的简书,今天分享的是原创的canvas仿写贝塞尔曲线方法。具体如下:
效果图:

html
css
canvas{ border: 1px solid black;}js
var canvas = document.getElementById("mycanvas"); var context = canvas.getContext("2d"); var x1 = 100; var y1 = 100; var x2 = 400; var y2 = 400; draw(); function draw(){ //画半透明的线 context.beginPath(); context.moveTo(500,0); context.lineTo(0,500); context.strokeStyle = "rgba(0,0,0,0.3)"; context.lineWidth = 10; context.stroke(); //画连接线 context.beginPath(); context.moveTo(0,500); context.lineTo(x1,y1); context.lineWidth = 2; context.strokeStyle = "black"; context.stroke(); context.beginPath(); context.moveTo(500,0); context.lineTo(x2,y2); context.lineWidth = 2; context.strokeStyle = "black"; context.stroke(); //画红球 context.beginPath(); context.arc(x1,y1,10,0,Math.PI*2); context.fillStyle = "orange"; context.fill(); //画蓝球 context.beginPath(); context.arc(x2,y2,10,0,Math.PI*2); context.fillStyle = "blue"; context.fill(); //画贝塞尔曲线 context.beginPath(); context.moveTo(0,500); context.bezierCurveTo(x1,y1,x2,y2,500,0); context.lineWidth = 5; context.stroke(); } //拖动小球做动画 //判断是否拖动小球 //如果在小球上就做动画 canvas.onmousedown = function(e){ var ev = e || window.event; var x = ev.offsetX; var y = ev.offsetY; //判断是否在红球上 var dis = Math.pow((x-x1),2) + Math.pow((y-y1),2); if(dis<100){ console.log("鼠标在红球上"); canvas.onmousemove = function(e){ var ev = e || window.event; var xx = ev.offsetX; var yy = ev.offsetY; //清除画布 context.clearRect(0,0,canvas.width,canvas.height); x1 = xx; y1 = yy; //重绘制 draw(); } } //判断鼠标是否在蓝球上 var dis = Math.pow((x-x2),2) + Math.pow((y-y2),2); if(dis<100){ canvas.onmousemove = function(e){ var ev = e || window.event; var xx1 = ev.offsetX; var yy1 = ev.offsetY; //清除画布 context.clearRect(0,0,canvas.width,canvas.height); x2 = xx1; y2 = yy1; //重绘制 draw(); } } } document.onmouseup =function(){ canvas.onmousemove = " "; } 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关内容
- Canvas绘制浮动球效果的示例html5 canvas实现的鼠标响应式金色粒子悬浮动画特效源码html5 canvas实现的随机粒子浮动动画特效源码
- 微信小程序“圣诞帽”的实现思路详解微信头像怎么带戴圣诞帽? 微信小程序制作圣诞帽头像的教程
- 基于HTML5+Webkit实现树叶飘落动画html5结合Canvas实现的树叶飘落动画特效源码逼真的HTML5树叶飘落动画HTML5实现的树叶飘落动画特效源码
- HTML5 解决苹果手机不能自动播放音乐问题html5 video全屏播放/自动播放的实现示例html5中嵌入视频自动播放的问题解决html5自动播放mov格式视频的实例代码解决HTML5中的audio在手机端和微信端的不能自动播放问题有关HTML5中背景音乐的自动播放功能HTML5页面音视频在微信和app下自动播放的实现方法HTML5页面音频自动播放的实现方式
- canvas实现圆形进度条动画的示例代码HTML5 Canvas 实现圆形进度条并显示数字百分比效果示例
- 详解HTML5 录音的踩坑之旅HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能html5录音功能实战示例HTML5录音实践总结(Preact)
- 移动HTML5前端框架—MUI的使用mui几种页面跳转方式对比总结概括
- canvas如何绘制钟表的方法html5中canvas图表实现柱状图的示例基于HTML5 Canvas的3D动态Chart图表的示例
- 全民英雄小小进化品质及升级条件说明 全民英雄小小怎么进化_手机游戏_游戏攻略_
- 全民英雄如何扩展酒馆 全民英雄提高酒馆上限方法攻略_手机游戏_游戏攻略_
