HTML5中canvas如何画虚线

虚线也可以看成是一段段的实线组成的,而实线是利用context.moveTo(x,y);context.lineTo(x2,y2);context.stroke();

那么我们就可以利用context的基本方法来完成虚线的实现原理,如下:

var context = document.getElementById('canvas').getContext('2d');

//求斜边长度

function getBeveling(x,y)

{

return Math.sqrt(Math.pow(x,2)+Math.pow(y,2));

}

function drawDashLine(context,x1,y1,x2,y2,dashLen)

{

dashLen = dashLen === undefined ? 5 : dashLen;

//得到斜边的总长度

var beveling = getBeveling(x2-x1,y2-y1);

//计算有多少个线段

var num = Math.floor(beveling/dashLen);

for(var i = 0 ; i < num; i++)

{

context[i%2 == 0 ? 'moveTo' : 'lineTo'](x1+(x2-x1)/num*i,y1+(y2-y1)/num*i);

}

context.stroke();

}

drawDashLine(context,50,50,300,180,5);展示效果如下:

1楼you23hai45昨天 23:09厉害啊,继续加油阿!

html页面画虚线,HTML5中canvas怎么画虚线相关推荐

  1. html中间一条虚线怎么画,【html5】HTML5中canvas怎样画虚线

    在canvas API中,我们发现仅仅提供了画实线的方法实现,并没有虚线的相关方法,那么怎样实现画虚线呢? 现实中,虚线是由一小段小段的实线线段组成,那么仅仅要我们通过画出等长度的线段就能够组成我们想 ...

  2. php版canvas,PHP实现将HTML5中Canvas图像保存到服务器

    这篇文章主要介绍了PHP实现将HTML5中Canvas图像保存到服务器的方法,可实现将Canvas图像保存到服务器的功能,是非常实用的技巧,需要的朋友可以参考下 本文实例讲述了PHP实现将HTML5中 ...

  3. html5中提供的绘图元素,HTML5中Canvas元素的使用总结

    HTML5中Canvas元素的使用总结 Canvas提供了开发者自定义绘图的接口,我们可以公国getContext()函数来获取绘图上下文进行绘制操作,这个函数中可以传入两个参数,其中第1个参数设置绘 ...

  4. html5中Canvas、绘制线条模糊、常见绘制工具、绘制基本图形、绘制图片、面向对象的方式绘制图形图片、绘制文本、帧动画绘制

    Canvas容器: canvas标签用来定义图像的容器,必须配合脚本来绘制图像,canvas也运用于游戏开发.注意:canvas绘制图时会出现线条模糊情况,这是因为显示屏像素和canvas中定义的一个 ...

  5. 浅谈HTML5中canvas中的beginPath()和closePath()的重要性

    beginPath的作用很简单,就是开始一段新的路径,但在使用canvas绘图的过程中却非常重要 先来看一小段代码: var ctx=document.getElementById("can ...

  6. Html5中Canvas(画布)的使用

    什么是 Canvas?HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像.画布是一个矩形区域,您可以控制其每一像素.canvas 拥有多种绘制路径.矩形.圆形.字符以及添加 ...

  7. html5中canvas画布实现手机端和移动端的刮刮乐效果

    用html5中的canvas实现刮刮乐的效果 使用html+css实现背景的样式 使用clearRect()方法实现挂去的作用 手机端使用addEventListener()监听 手机端滑动事件tou ...

  8. python画窗口_pyqt中图案如何画在子窗口上

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 基本思路是从QWidget派生出一个类重写paintEvent,在里面画图. UI部分代码是这样的 class Ui_Form(object): def ...

  9. 毛边效果 html,Html5中Canvas画线有毛边如何解决

    Html5 Canvas 所有的画线指令画出来的线条都有毛边(比如 lineTo, arcTo,strokeRect),这是因为在Canvas中整数坐标值对应的位置恰巧是屏幕象素点中间的夹缝,那么当按 ...

最新文章

  1. Redis主从握手流程,你真的了解了吗?
  2. Linux用户、群组管理
  3. configure: error: Neither flex nor lex was found.
  4. .Net Core + 微信赋能企业级智能客服系统--学习笔记
  5. linux 全双工 wifi热点,Linux中的同时套接字读/写(“全双工”)(特别是aio)
  6. HttpContext
  7. sigprocmask()函数实例详解,设置信号规定时间堵塞,取消信号堵塞
  8. 【华为云技术分享】【DevCloud · 敏捷智库】如何利用核心概念解决估算常见问题
  9. 第7.3节 Python特色的面向对象设计:协议、多态及鸭子类型
  10. ajax执行成功后,在success回调函数中把后台返回的list还原到html的table中
  11. 送给前端的干货 ,绝对经典的学习资料大全,js框架,css
  12. rabbitmq实践demo
  13. R如何查看缺失值和处理缺失值
  14. AD16 禁止联网操作
  15. “哥”不信“神马浮云”
  16. 微信公众号平台登陆-你已授权登陆过XXXX
  17. Simulink仿真WiFi信号
  18. java ebcdic编码转换_JAVA实现ASCII码与EBCDIC码的相互转换
  19. 数据库发展史 特性,安装区别
  20. Maximum Absurdity(dp思想+前缀和)

热门文章

  1. 2022_Aug_11
  2. 郑州泓晟龙腾计算机有限公司,龙腾资料管理系统
  3. CentOS7安装桌面环境(腾讯云)
  4. 平台托管的VPS服务器有哪些好处?
  5. Springboot综合案例锦集
  6. html百度地图获取城镇街道,集成百度地图根据地址获取经纬度,定位地址到街道...
  7. Linux搭建elasticsearch-7.8.0单机版本
  8. excel 瀵煎叆mysql_瀵煎叆fun-foodPPT课件
  9. 京东APP鸿蒙版开发实践,有点牛逼哦!
  10. 兼容罗姆BD450M5FP-C,BD433M5FP-C,BD750L2FP-C,BD733L2FP-C的高压LDO-芯生美CSM5350BSH,CSM5333BSH