캔버스를 사용하여 자체 주위의 이미지를 어떻게 회전시킬까요?

StackOverflow https://stackoverflow.com/questions/1621321

  •  06-07-2019
  •  | 
  •  

문제

나는 캔버스를 사용하여 자체 주위에 이미지를 로우는 데 어려움을 겪고 있습니다.

이미지를 회전시킬 수 없으므로 캔버스를 회전시켜야합니다. 캔버스를 어느 정도 회전하면 변경 사항을 회전시키려는 원점을 어느 정도까지 회전시킵니다. 이 변경 사항을 추적하는 방법이 없습니다.

이것은 내 현재 코드입니다. http://pastie.org/669023

그리고 데모가 있습니다 http://preview.netlashproject.be/cog/

물건을주고 싶다면 지퍼 코드와 이미지가 http://preview.netlashproject.be/cog/cog.zip

도움이 되었습니까?

해결책

코드를 수정했습니다.

var rotation = 0;
function draw(){

  var ctx = document.getElementById('myCanvas').getContext('2d');
  ctx.globalCompositeOperation = 'destination-over';

  ctx.save();
  ctx.clearRect(0,0,200,200);
  ctx.translate(100,100); // to get it in the origin
  rotation +=1;
  ctx.rotate(rotation*Math.PI/64); //rotate in origin
  ctx.translate(-100,-100); //put it back
  ctx.drawImage(cog,0,0);
  ctx.restore();
}

여기서 중요한 것은 회전하기 전에 이미지를 원점으로 번역하고 다시 번역해야한다는 것입니다!

다른 팁

이것은 당신이 사용할 수있는 것일 수있는 것 같습니다. http://wilq32.googlepages.com/wilq32.rollimage222

테스트는 다음과 같습니다. http://www.antiyes.com/test/index.php

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top