2013-07-14 4 views
0

지난 몇 시간 동안 어떤 각도로든 작은 사각형으로 사각형을 만들려고했습니다. 이렇게하는 것을 상상해 보았습니다. http://i.stack.imgur.com/Ymakk.png작은 사각형으로 사각형 만들기

[검은 선은 구성된 사각형의 윤곽을 나타내고 빨간색 선은이를 구성하는 삼각형을 나타냅니다. 빨간색 직사각형도 완전히 직선이어야합니다. ]

렌더링을 시도 할 때 매우 작은 증분을 제외하고는 분명히 정의되어 있지 않지만 최종 제품은 미리 지정된 각도에서 직사각형처럼 보이기를 바랍니다.

왼쪽 위 모서리가 (0, 0)이고 아래쪽이 오른쪽 (1, 1)이되도록 화면이 설정됩니다. 어떻게하면 좋을까요? 구체적으로 실제 코드, 의사 코드 또는 설명을 찾는 것이 아니라 아마도 일부 수학은 훌륭 할 것입니다! 미리 감사드립니다.

+1

당신은 당신의 코드를 바이올린에 넣을 수 있습니까? 더 많은 사람들이 이해할 수 있도록 더 간단한 방법으로 설명하십시오. –

+0

물론 시도해 볼 수 있습니다. 음, 근본적으로 저는 사각형을 회전시킬 수 없으므로 작고 길고 얇은 직사각형으로 직사각형을 만들어 필요한 각도로 직사각형을 만들 수 있다고 가정했습니다. 작은 직사각형의 가장자리를 볼 수 없도록 정의 된 사각형을 만들기 위해, 나는 그들의 y- 크기를 매우 작게 만들 예정이었습니다. 다행히도이 이미지가 도움이되기를 바랍니다. http://imgur.com/UrJJtQx 큰 직사각형을 구성하기 때문에 크기가 너무 커서 직사각형을 만들 수 있습니다. 사각형을 구성하는 사각형도 회전 할 수 없습니다. – lelcats

+0

'javascript'태그를 보면 브라우저에서이 작업을 수행하고 있습니까? – wwww

답변

0

여기 당신을 위해 기하학의 약간의 : 당신의 사각형이 완벽하게 정렬되어

경우, 당신은 단지 하나 개의 큰 사각형을 그릴 수 있습니다 당신은 승리. 이 전혀 각도 경시 만약

하면 라인을 표현할 수있는 간단한 수식

Y = m * X + C는 m 및 C를 계산하기 위해 양단부의 x 및 y를 삽입

(매우 간단한 과정은 실제로)하거나 그 m = 황갈색 (각도)를 산출 할 수

는 그러면 "막"은 Y 좌표를 걸어 속하는 왼쪽에 대응하는 X 위치 및 우측 라인을 얻을 수있다 y, c, m 값을 방정식에 삽입하고 x를 풀어 사각형을 만듭니다.

직사각형 그림을 보면 기본적으로 세 부분으로 나뉩니다. 첫 번째 부분은 아래쪽 가장자리에서 왼쪽 하단으로갑니다. 그것은 왼쪽으로 긴면을 따라 가고 왼쪽면에서 가장자리를 만난다. 그 다음에 오른쪽으로 짧은 쪽을 따라 오른쪽 위 가장자리를 만나고 왼쪽 상단 모서리로 이동하십시오 (물론 위에서 아래로도이 작업을 수행 할 수 있습니다)

신중하게 왼쪽 또는 오른쪽의 두 선 사이의 가장자리에 도달했는지 확인하고 적절한 순간에 m 및 c에 대한 값을 전환하십시오.

나는 이것이 해결책에 가까워 야한다고 생각한다.

+0

그래서, 기본적으로, 두 라인에 하나의 지점을 찾아, 내가 더 높은 도달 할 수 없을 때까지 자신의 Y 축을 따라 내 길을 작동 후 다른 두 스위치? 내가가는대로 직사각형을 렌더링합니까? – lelcats

+0

예, 당신이 그것을 전달하려는 의미로 이해 소리 : – timotimo

+0

잘 했어.나는 이것을 나의 받아 들인 대답으로 설정하는 것을 잊었다. 감사 – lelcats