Heim  >  Artikel  >  Web-Frontend  >  下面代码 canvas rotate旋转 旋转的坐标点在哪,为什么不在元素的中心点?_html/css_WEB-ITnose

下面代码 canvas rotate旋转 旋转的坐标点在哪,为什么不在元素的中心点?_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:45:211524Durchsuche

下面代码 canvas rotate旋转 旋转的坐标点在哪,为什么不在元素的中心点?

=================================

 nbsp;html>
 
 


 
 无标题文档
 
 <script> <br /> <br /> function init() <br /> { <br /> var canvas = document.getElementById('canvas'); <br /> var cxt = canvas.getContext('2d'); <br /> cxt.strokeStyle = "red"; <br /> cxt.strokeRect(300,300,100,100); <br /> cxt.strokeStyle = "blue"; <br /> cxt.rotate(10*Math.PI/180); <br /> cxt.strokeRect(300,300,100,100); <br /> cxt.strokeStyle = "green"; <br /> cxt.rotate(20*Math.PI/180); <br /> cxt.strokeRect(300,300,100,100); <br /> } <br /> </script>
 
 
 
 
  


回复讨论(解决方案)

canvas旋转其实就是画布的旋转,旋转中心点是画布原点,即0,0点。
如果想中心旋转的话设置画布原点即可。

function init() {	 var canvas = document.getElementById('canvas');	 var cxt = canvas.getContext('2d');	 cxt.strokeStyle = "red";	 cxt.strokeRect(0,0,100,100);	 cxt.strokeStyle = "blue";	 cxt.rotate(10*Math.PI/180);	 cxt.strokeRect(0,0,100,100);	 cxt.strokeStyle = "green";	 cxt.rotate(20*Math.PI/180);	 cxt.strokeRect(0,0,100,100);	 cxt.rotate(-30*Math.PI/180);//将画布旋转恢复到初始状态	 cxt.translate(50,50);//将画布原点移动到旋转对象的中心位置	 cxt.rotate(45*Math.PI/180);//旋转画布	 cxt.translate(-50,-50);//将画布原点恢复到初始状态	 cxt.strokeStyle = "yellow";	 cxt.strokeRect(0,0,100,100); }

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn