好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

html5 canvas里绘制椭圆并保持线条粗细均匀的技巧

Canvas里 绘制 椭 圆 是一个很常见的需求,比较新的HT ML Canvas 2D Context&nbs p; W3C草案里面新增了ellipse方法绘制椭圆,但是目前大多数浏览器还没有实现该方法,所以需要用arc 或者 arcTo方法结合scale 变形 来绘制椭圆。

示例代码:

复制代码

代码如下:


<canvas width="400" h ei ght="300"></canvas>
<script>
VAR ctx = documentquerySelector('canvas')getContext('2d');
ctxlineWidth = "10";
ctxscale(1,2);
ctxarc(150,150,100,0,MathPI*2,false);
ctx stroke ();
</script>


有点不对,因为线条粗细不均匀了,stroke也被scale影响了。

要修正这个问题,就要 一点 点小技巧了。

示例代码:

复制代码

代码如下:


[code]
<canvas width="400" height="300"></canvas>
<script>
var ctx = documentquerySelector('canvas')getContext('2d');
ctxlineWidth = "10";
ctxsave();
ctxscale(1,2);
ctxarc(150,150,100,0,MathPI*2,false);
ctxre Store ();
ctxstroke();
</script>


[/code]


现在均匀了,非常完美。

技巧就在先save保存 画布 状态,然后缩放、调用路径指令,再restore恢复画布状态,再stroke绘制出来。

关键点 是先save后缩放,先restore后stroke.

总结

以上是 为你收集整理的 html5 canvas里绘制椭圆并保持线条粗细均匀的技巧 全部内容,希望文章能够帮你解决 html5 canvas里绘制椭圆并保持线条粗细均匀的技巧 所遇到的问题。

如果觉得 网站内容还不错, 推荐好友。

查看更多关于html5 canvas里绘制椭圆并保持线条粗细均匀的技巧的详细内容...

  阅读:20次