2013-12-10 3 views
0

회전 기능을 사용하지 않고 직사각형을 회전하려고하지만 대신 행렬을 사용하고 있습니다. 행렬을 사용하여 선을 회전하는 방법을 알고 있지만 직사각형을 회전하려는 모든 시도가 실패했습니다.처리 중, 행렬을 사용하여 사각형 회전?

나는 이것이 사용법은 충분하다고 생각하지 않지만 heres는 회선을 회전시키는 코드이다.

float[][] rotation; 
float[] position; 
float theta = 180; 
float pointX; 
float pointY; 
void setup() { 

    frameRate(60); 
    size(600, 600); 

    pointX = 0; 
    pointY = 0; 

rotation = new float[2][2]; 
position = new float[8]; 
} 

void draw() { 
background(200); 
theta = mouseX; 

position[0] = mouseY; 
position[1] = mouseY; 

position[2] = -mouseY; 
position[3] = mouseY; 

rotation[0][0] = cos(radians(theta)); 
rotation[0][1] = -sin(radians(theta)); 
rotation[1][0] = sin(radians(theta)); 
rotation[1][1] = cos(radians(theta)); 

float newpos[] = new float[8]; 

newpos[0] += position[0] * rotation[0][0]; 
newpos[1] += position[1] * rotation[0][1]; 

translate(width/2, height/2); 

line(0, 0, pointX+newpos[0], pointY+newpos[1]); 
line(0, 0, pointX+newpos[0] * -1, pointY+newpos[1] * -1); 

} pushMatrix()/popMatrix 살펴 갖는 의해

+0

android.graphics.Matrix를 사용하지 않는 이유는 무엇입니까? – Michael

+0

그 학교에 대한 선생님은 그것에 대해 아무것도 언급하지 않았다 .... 그리고 그는 우리가 지름길을 사용하는 것을 원하지 않는다. ... – Mark9135

+0

Allright (비록 이것이 프로그래밍 과정이고 나는 선생님 이었다면 기존 클래스를 사용하는 대신 코드 작성에 대한 책임이 있음). 사각형 코드는 어디에 있습니까? – Michael

답변

1

라인이 제대로 작동하더라도 우연히 ... 포인트의 새로운 x와 y를 계산하는 데 중요한 부분이 있습니다. 당신이 wikipedia에서 찾을 수 있듯이, 당신은 당신이 제대로처럼 매트릭스의 죄와 COS를 계산해야하지만 새로운 지점을 만들 때 정확히이 작업을 수행하지 않습니다

enter image description here

enter image description here

+0

mmmm 내가 어디에 넣을 까? 어디에 그것을 구현해야한다고 생각 지금 내 라인을 회전하지 않습니다. – Mark9135

+0

nvm 나는 그것을 soooo 고맙다고 일하게했다, 나는 지금 회전하는 사각의 철사 구조를 얻는다. 하지만 선생님은 물론 붉은 색이되고 싶습니다.하지만 나는 그것이 다른 화제를위한 것이라고 믿는다. – Mark9135

0

시작() 및 공간 좌표.

Daniel Shiffman's tutorial도보세요. 꽤 잘 설명되어 있습니다.

이보다 낮은 레벨이 필요하면 PMatrix2D 클래스를 살펴보십시오. rotate() 함수가 있습니다. 회전 한 후에는 applyMatrix()를 사용하여 행렬을 적용 할 수 있지만 push/pop 행렬 호출을 사용할 수도 있습니다. 또 다른 옵션은 회전 행렬에 벡터 (직사각형 모서리)를 곱하고 결과/변형 점을 그립니다.

+0

문제가 회전 함수입니다 ... 나는 내 선생님은 우리가 회전 기능을 기본적으로 가지고 있다고 그는 선생님이 우리가 백그라운드에서 회전 기능을 코드화하기를 원한다고 말했다. – Mark9135

+0

[경우에 따라] (https://github.com/processing/processing/blob/master/core/src/processing/core/PMatrix2D.java#L142), 선생님도 변형 행렬에 대한 강연을 갖고 계셨습니까? (뭔가 [이와 비슷한] (http://people.bath.ac.uk/sej20/transform.html) –

+0

예 그는 그것에 대해 우리에게 가르쳐 줬어 – Mark9135

관련 문제