关于canvas画布中的moveTo()\lineTo()函数


canvas中的moveTo(x,y)\lineTo(x,y);一直不清楚这两个函数的坐标和方向是怎么表示的,比如下面这个例子:


 function mycanvas()
        {
                var c=document.getElementById("mycanvas");
                var ctxt=c.getContext("2d");
                ctxt.beginPath();
                ctxt.moveTo(10,50);
                ctxt.lineTo(100,50);
                ctxt.lineTo(100,150);
                ctxt.lineTo(10,50);
                ctxt.stroke();
        }
        window.onload=mycanvas;

求指导啊,谢谢~~~~

canvas HTML

秀吉我的菜 9 years, 11 months ago

以你的画布左上角为0,0原点
moveTo(x1,y1)->移动绘画开始点到x1,y1
ctxt.lineTo(x2,y2)->从(x1,y1)画一条直线到(x2,y2)

成为卡夫卡 answered 9 years, 11 months ago

嗯 你这么说我倒是有点儿明白了 谢谢哈~
我再试试去

Selcao丶 answered 9 years, 11 months ago

默认情况下,不做canvas 的坐标变换,左上角是 (0,0) 然后水平向右是 x轴正方向,向下是y轴正方向。所以说默认右下角的坐标是 (width,height) 其中 width和height是你在写canvas标签的时候的width和height属性,这两个属性和css中的width和 height也是不一样的。
CSS中的这两个属性定义的是显示的大小,而canvas标签中的这两个属性定义的就是右下角的坐标值。当然如果不定义CSS中的width和height默认的canavs大小就是这个两个参数定义的,单位像素。

longkey answered 9 years, 11 months ago

Your Answer