이 프로그램이 실행됩니다. 하지만, 가능한 한 사각형이 바뀌면 아티팩트가 있음을 알 수 있습니다. 행렬 값이 표현되어야하며이 표현은 각도에 따라 표시되어야합니다. 좋은 시각화를 달성 할 수있는 방법이 있습니까? 왜 내 코드가 이렇게됩니까?html5 캔버스의 그래픽 : 기괴하고 바람직하지 않은 광학 효과
var canvas=document.getElementById('canvas');
var ctx=canvas.getContext('2d');
var x=100;
var y=100;
var width=200;
var height=200;
var radianAngle=0;
Rotar();
var array = new Array2D(200,200);
function Array2D(NumOfRows,NumOfCols)
{
var k=new Array(NumOfRows);
for (i = 0; i < k.length; ++i)
k[i] = new Array(NumOfCols);
return k;
}
function Rotar(){
//Borramos
ctx.clearRect(0,0,canvas.width,canvas.height);
//Salvamos el estado
ctx.save();
// Transladamos su centro de gravedad
ctx.translate(x+width/2,y+height/2);
//Otra mⳍ
ctx.rotate(radianAngle);
var array = new Array2D(200,200);
for(i=0; i<200; i++)
{
for(j=0;j<200; j++)
{
array[i][j]=i+j;
var r,g,b;
r = array[i][j];
g=50;
b=50;
//La parte de dibujo
ctx.fillStyle = "rgba("+r+","+g+","+b+",100)";
ctx.fillRect(i, j, 1, 1);
}
}
ctx.restore();
}
$("#test").click(function(){
radianAngle+=Math.PI/60;
// call rotateSquare
Rotar();
});
body {
background: #dddddd;
}
#canvas {
background: #eeeeee;
border: thin solid #aaaaaa;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<canvas id="canvas" height="500" width="500"></canvas>
<button id="test">Rotate</button><br>
ROTAR(); }});
이 이슈를 해결하는 방법을 아는 사람이 있습니까? – heptagono
주석 처리 된 모든 항목에서 코드를 지우고 바로 끝낼 수 있습니까? 고마워. – GameAlchemist