canvas教程

html5 canvas translate

字号+ 作者:H5之家 来源:H5之家 2015-11-13 15:30 我要评论( )

发布最新的网站前端开发资讯以及技术文档,包括div+css布局,javascript开发,ajax开发,javascript框架XDK官网

静下心来,开始接触一下HTML5吧,要不然以后连套页面都不会了。:)

在看手册的时候,canvas画布是一项很强大的东西。类似于WEBQQ的动态背景之类的就不说了,咱是菜鸟,从头学。

先来看一下canvas中的坐标原点,及正、负坐标的取值

那就先试着画一个“米”字吧,高手莫笑!

>

>
    var canvas = document.getElementById('diagonal');
    //指定绘制的类型为2d,并返回其绘画环境
    var context = canvas.getContext('2d');
    context.moveTo(200, 0);
    context.lineTo(0, 200);
   
    context.moveTo(0, 0);
    context.lineTo(200, 200);
   
    context.moveTo(0,100);
    context.lineTo(200,100);
   
    context.moveTo(100,0);
    context.lineTo(100,200);
   
    context.stroke();
</script>

默认的原点坐标是0,0 那么,我们在画图的时候是否可以指定新的原点坐标呢?of course!

我们可以在更改默认原点之前先对context执行save()方法,相当于做一个标记

使用context的translate()方法,可以指定新的原点坐标,后续的moveTo和lineTo的坐标值都是相对于新的原点坐标来操作取值

使用context的restore()方法,可以回到默认的原点坐标去

例如,可以使用下面的方法重新画一个“米”字

        ></canvas>
        >
            var canvas = document.getElementById('diagonal');
            var context = canvas.getContext('2d');
            context.save();
            context.translate(200,0);
            //这个0,0 其实是200,0
            context.moveTo(0,0);
            context.lineTo(-200,200);
            context.moveTo(-200,0);
            context.lineTo(0,200);
            context.moveTo(-100,0);
            context.lineTo(-100,200);
            context.moveTo(-200,100);
            context.lineTo(0,100);
            context.stroke();
        </script>

或者,画到一半,我们把原点坐标返回到0,0 可以这样做:

        ></canvas>
        >
            var canvas = document.getElementById('diagonal');
            var context = canvas.getContext('2d');
            context.save();
            context.translate(200,0);
            context.moveTo(0,0);
            context.lineTo(-200,200);
            context.moveTo(-200,0);
            context.lineTo(0,200);
            context.restore();
            //这时候的100,0是真正相对于原来的0,0时的100,0
            context.moveTo(100,0);
            context.lineTo(100,200);
            context.moveTo(0,100);
            context.lineTo(200,100);
            context.stroke();
        </script>

 
 转自《html5 canvas translate》

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 开发者值得关注的HTML5新特性:Canvas

    开发者值得关注的HTML5新特性:Canvas

    2015-10-28 18:48

  • canvas JavaScript API学习(五)

    canvas JavaScript API学习(五)

    2015-10-05 08:06

  • canvas JavaScript API学习(二)

    canvas JavaScript API学习(二)

    2015-09-16 13:02

  • canvas JavaScript API学习(一)

    canvas JavaScript API学习(一)

    2015-09-16 12:17

网友点评
e