html5中绘制圆角矩形的问题

_Slience_ 2015-08-13 03:56:46
请问各位前辈在canvas中使用这三句,
context.moveTo(110, 100);
context.arcTo(200, 100, 200, 200, 10);
context.lineTo(100, 200);
之后的显示效果为什么是
这样,而不是这样呢?
那个arcTo的第二个点的坐标怎么没有生效呢?
...全文
1248 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
neorobin 2015-08-13
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
第二张图是三条直线和两条弧线,要五条线才能画出来,你三行代码当然画不出来
arcTo 可以画出一段纯粹的弧, 也可以画出一段纯粹的直线, 还可以画出一段直线和一段弧(相切)的衔接组合, 所以 5 条线并不是必须的, 3 个 arcTo 就能实现了
neorobin 2015-08-13
  • 打赏
  • 举报
回复
楼主要的效果完全可以不用 lineTo 方法, 而只用 3 个 arcTo 方法实现
context.moveTo(100, 100);
context.arcTo(200, 100, 200, 200, 10);
context.arcTo(200, 190, 200, 190, 0); // 两个控制点重合, 所以效果 = 直线段
context.moveTo(100, 200);
context.arcTo(200, 200, 200, 100, 10);
context.stroke();
neorobin 2015-08-13
  • 打赏
  • 举报
回复
看看 W3C 的说明吧
http://www.w3.org/TR/2014/WD-2dcontext2-20140828/

下面几个图应该解释得很清楚了


天际的海浪 2015-08-13
  • 打赏
  • 举报
回复
引用 2 楼 u010513756 的回复:
[quote=引用 1 楼 jslang 的回复:] 第二张图是三条直线和两条弧线,要五条线才能画出来,你三行代码当然画不出来
请问代码第二行的context.arcTo(200, 100, 200, 200, 10);中的后两个200为何没有生效呢?[/quote] http://www.jb51.net/html5/70318.html
_Slience_ 2015-08-13
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
第二张图是三条直线和两条弧线,要五条线才能画出来,你三行代码当然画不出来
请问代码第二行的context.arcTo(200, 100, 200, 200, 10);中的后两个200为何没有生效呢?
天际的海浪 2015-08-13
  • 打赏
  • 举报
回复
第二张图是三条直线和两条弧线,要五条线才能画出来,你三行代码当然画不出来
功能包含标注、文本、路径、颜色、画板、包装、拼板、设计、输出和效果等大类,常用功能如:标注横尺寸,标注纵尺寸,标注尺寸,轻松画包装1,轻松画包装2,天地盖盒子,绘制手提袋,绘制外箱,生成出血线,文本段落分行,段落行合并,文本段落转换,单行拆单字,字体转曲,大小写转换,查找专色,两者换位,选择导出-PSD,导出jpg,选择导出jpg,选择增强,随机填色,圆角插件,锚点分割路径,等分路径,建立等分圆,测量路径长度,点到点连线,节点延伸,解锁全部对象,统一画板尺寸,当前画板矩形,全部画板矩形,垂直两分,水平两分,插入页码等,多图层转多画板,页面适配对象,裁切标记,印前角线,一键拼版,自动拼版,阵列复制,标记线生成,创建参考线,打开多页PDF,置入PDF多页面,条形码及二维码,色标生成器,移除叠印属性,移除非纯黑叠印,解散全部群组,批量替换链接图,链接文件打包,全部颜色转黑,查找白色叠印,删除所有蒙版,正则编辑文本,流水号生成器,统计所选对象,。 作者会持续更新,如果您有需要的功能,可以给作者留言,作者闲时进行制作。欢迎下载使用,安装完毕之后,在窗口菜单>扩展>知了插件,打开即可使用。

39,083

社区成员

发帖
与我相关
我的任务
社区描述
HTML5是构建Web内容的一种语言描述方式。HTML5是互联网的下一代标准,是构建以及呈现互联网内容的一种语言方式.被认为是互联网的核心技术之一。
社区管理员
  • HTML5社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧