【坑】【未解答】使用canvas中的arcTo绘制圆角矩形遇到的问题
2015-08-13 16:13
686 查看
书中给的代码示例如下
我不明白为什么这样可以绘制出正确的圆角矩形
就以代码中的例子为例,它绘制的步骤我认为是这样的
绘制点移到(110,100)
之后绘制点移到(300, 100),并以它为起点(300,300)为终点绘制一个弧线,此时绘制点移动到了(300, 300)
但是如果我就运行到第二步,之后直接lineTo到另一个位置,看看当前的绘制点到底是在哪的时候,发现绘制点(300, 110)的位置上,也就是说只是绘制了一个弧,下面的那个弧形没有绘制,但是完整的写下来又可以正常绘制一个圆角矩形
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <canvas id="canvas" width="1200" height="800"></canvas> </body> <script type="text/javascript"> var canvas = document.getElementById("canvas"); var context = canvas.getContext("2d"); drawRoundRect(100, 100, 200, 200, 50); function drawRoundRect(x, y, w, h, r) { context.beginPath(); context.moveTo(x+r, y); context.arcTo(x+w, y, x+w, y+h, r); context.arcTo(x+w, y+h, x, y+h, r); context.arcTo(x, y+h, x, y, r); context.arcTo(x, y, x+r, y, r); context.stroke(); } </script> </html>
我不明白为什么这样可以绘制出正确的圆角矩形
就以代码中的例子为例,它绘制的步骤我认为是这样的
绘制点移到(110,100)
之后绘制点移到(300, 100),并以它为起点(300,300)为终点绘制一个弧线,此时绘制点移动到了(300, 300)
但是如果我就运行到第二步,之后直接lineTo到另一个位置,看看当前的绘制点到底是在哪的时候,发现绘制点(300, 110)的位置上,也就是说只是绘制了一个弧,下面的那个弧形没有绘制,但是完整的写下来又可以正常绘制一个圆角矩形
相关文章推荐
- 第五章 编码/加密——《跟我学Shiro》
- NSOperation-NSBlockOperation
- DOS下adb命令使用
- How Does Caching Work in AFNetworking? : AFImageCache & NSUrlCache Explained
- InfiniTAM的编译探索
- nginx+tomcat的安装与配置)
- Cash Machine poj (多重背包)
- 玩转指针(Playing with Pointers)
- [老老实实学WCF] 第四篇 初探通信--ChannelFactory
- 第四章 INI配置——《跟我学Shiro》
- 【Ex2013】【跨站点DAG】防止数据库活动副本切换到备份服务器
- 第三章 授权——《跟我学Shiro》
- 全局钩子函数之 SetWindowsHookEx
- Excel Sheet Column Number
- LeetCode(31) Next Permutation
- 在需求分析中就可以避免的那些错误3
- Spring+Struts2+mybatis 整合(详细解释+完整流程)
- 【NoSql】Redis实践篇-安全性与主从复制配置(二)
- 【Maven】Maven是什么以及Maven工程的建立
- jQuery使用 $.grep() 方法