利用三角函数在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教程(7):CSS3嵌入字体
Apr 02 HTML / CSS
css3弹性盒模型(Flexbox)详细介绍
Oct 08 HTML / CSS
一款利用纯css3实现的win8加载动画的实例分析
Dec 11 HTML / CSS
CSS3移动端vw+rem不依赖JS实现响应式布局的方法
Jan 23 HTML / CSS
CSS3 实现的加载动画
Dec 07 HTML / CSS
html5实现多文件的上传示例代码
Feb 13 HTML / CSS
HTML5 video标签(播放器)学习笔记(二):播放控制
Apr 24 HTML / CSS
通过HTML5规范搞定i、em、b、strong元素的区别
Mar 04 HTML / CSS
html5组织内容_动力节点Java学院整理
Jul 10 HTML / CSS
前后端结合实现amazeUI分页效果
Aug 21 HTML / CSS
CSS使用伪类控制边框长度的方法
Jan 18 HTML / CSS
CSS精灵图的原理与使用方法介绍
Mar 17 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
使用PHP制作新闻系统的思路
2006/10/09 PHP
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
php函数与传递参数实例分析
2014/11/15 PHP
PHP文件读取功能的应用实例
2015/05/08 PHP
PHP实现过滤掉非汉字字符只保留中文字符
2015/06/04 PHP
PHP查询附近的人及其距离的实现方法
2016/05/11 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
js行号显示的文本框实现效果(兼容多种浏览器 )
2015/10/23 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
2016/03/08 Javascript
JS组件Bootstrap实现弹出框效果代码
2016/04/26 Javascript
JavaScript函数中关于valueOf和toString的理解
2016/06/14 Javascript
socket.io实现在线群聊功能
2017/04/07 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
Vue.js实现可配置的登录表单代码详解
2018/03/29 Javascript
angular2 组件之间通过service互相传递的实例
2018/09/30 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
前端如何实现动画过渡效果
2021/02/05 Javascript
[08:06]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant 选手采访
2021/03/11 DOTA
Python实现给文件添加内容及得到文件信息的方法
2015/05/28 Python
浅谈Python基础之I/O模型
2017/05/11 Python
python3使用SMTP发送简单文本邮件
2018/06/19 Python
flask框架使用orm连接数据库的方法示例
2018/07/16 Python
利用pyinstaller打包exe文件的基本教程
2019/05/02 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
2020/12/07 Python
css3模拟jq点击事件的实例代码
2017/07/06 HTML / CSS
伊莱克斯阿根廷网上商店:Tienda Electrolux
2021/03/08 全球购物
资源环境与城市管理专业推荐信
2013/11/30 职场文书
精神文明建设标语
2014/06/16 职场文书
优秀三好学生事迹材料
2014/08/31 职场文书
python3操作redis实现List列表实例
2021/08/04 Python
Java详细解析==和equals的区别
2022/04/07 Java/Android
python使用BeautifulSoup 解析HTML
2022/04/24 Python