利用三角函数在canvas上画虚线的方法


Posted in HTML / CSS onJanuary 11, 2018

因为canvas的api没有虚线的

所以需要自己实现

顺便复习一下三角函数岂不美滋滋

利用三角函数在canvas上画虚线的方法

 

var context=document.getElementById("canvas").getContext("2d");
function drawDashedLine(context,x1,y1,x2,y2,dashlength){
    dashlength=dashlength===undefined?5:dashlength;
    var deltaX=x2-x1; //一条直角边的长
    var deltay=y2-y1; //另一条指教边的长

    var numDashes=Math.floor(
        Math.sqrt(deltaX*deltaX+deltay*deltay)/dashlength  //Math.sqrt返回一个数的平方根  dashlength虚线每个点的长度
    )

    var everydashLength_x=deltaX/numDashes  //确定X轴每条虚线点的起始点
    var everydashLength_y=deltay/numDashes  //确定Y轴每条虚线点的起始点

    for(var i=0;i<numDashes;i++){
        context[i%2===0?'moveTo':"lineTo"]
        (x1+everydashLength_x*i,y1+everydashLength_y*i)
    }
    context.stroke()

}
context.lineWidth=3
context.strokeStyle="blue"
drawDashedLine(context,20,20,context.canvas.width-20,20,20)

效果如图

利用三角函数在canvas上画虚线的方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3教程(9):设置RGB颜色
Apr 02 HTML / CSS
css3使网页、图片变成灰色兼容大多数浏览器
Jul 02 HTML / CSS
一款利用纯css3实现的360度翻转按钮的实例教程
Nov 05 HTML / CSS
css3实现可拖动的魔方3d效果
May 07 HTML / CSS
Android本地应用打开方法——通过html5写连接
Mar 11 HTML / CSS
HTML5 新旧语法标记对我们有什么好处
Dec 13 HTML / CSS
html5指南-7.geolocation结合google maps开发一个小的应用
Jan 07 HTML / CSS
html5文字阴影效果text-shadow使用示例
Jul 25 HTML / CSS
HTML5 Canvas中绘制矩形实例
Jan 01 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
Oct 23 HTML / CSS
详解前端HTML5几种存储方式的总结
Dec 27 HTML / CSS
HTML5中的websocket实现直播功能
May 21 HTML / CSS
HTML5 Web缓存和运用程序缓存(cookie,session)
Jan 11 #HTML / CSS
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
Jan 10 #HTML / CSS
基于canvas使用贝塞尔曲线平滑拟合折线段的方法
Jan 10 #HTML / CSS
canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)
Jan 10 #HTML / CSS
H5混合开发app如何升级的方法
Jan 10 #HTML / CSS
浅谈关于html5中图片抛物线运动的一些心得
Jan 09 #HTML / CSS
详解快速开发基于 HTML5 网络拓扑图应用
Jan 08 #HTML / CSS
You might like
Admin generator, filters and I18n
2011/10/06 PHP
PHP简洁函数(PHP简单明了函数语法)
2012/06/10 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
2012/09/19 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
jQuery autocomplete插件修改
2009/04/17 Javascript
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
js实现局部页面打印预览原理及示例代码
2014/07/03 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
2014/12/15 Javascript
JS去除iframe滚动条的方法
2015/04/01 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
React diff算法的实现示例
2018/04/20 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
微信小程序学习之自定义滚动弹窗
2020/12/20 Javascript
[52:02]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第一场 11.27
2020/11/30 DOTA
使用Python内置的模块与函数进行不同进制的数的转换
2016/03/12 Python
Python编程实现的图片识别功能示例
2017/08/03 Python
高效使用Python字典的清单
2018/04/04 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
Django实现文章详情页面跳转代码实例
2020/09/16 Python
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
使用HTML5加载音频和视频的实现代码
2020/11/30 HTML / CSS
德国最大的服装、鞋子和配件在线商店之一:Outfits24
2019/07/23 全球购物
采购员的工作职责
2013/12/26 职场文书
搬家公司的创业计划书
2014/01/01 职场文书
大学军训感言1500字
2014/03/09 职场文书
聚美优品恶搞广告词
2014/03/14 职场文书
房产买卖委托公证书
2014/04/04 职场文书
全运会口号
2014/06/20 职场文书
党员教师四风问题整改措施思想汇报
2014/10/08 职场文书
英语教师个人工作总结
2015/02/09 职场文书
上市公司董事长岗位职责
2015/04/16 职场文书
毕业证明书
2015/06/19 职场文书