"사변형"과 "사각형"에는 차이가 있습니다.
상단 및 하단의 중간 점과 측면 길이가있는 경우 나머지는 간단합니다.
을 감안할 때 :
(x1, y1) -- (top_middle_x, top_middle_y) -- (x2, y1)
(x1, y2) -- (btm_middle_x, btm_middle_y) -- (x2, y2)
및 위/아래 길이 왼쪽/오른쪽 길이와 함께.
x1 = top_middle_x - top/bottom_length/2; x2 = x1 + top/bottom_length;
Y1 = Y2 = top_middle_y bottom_middle_y
물론, 그 가장 간단한 경우이고 (TMX, TMY) (묘기, BMY)의 라인만으로 Y 축을 따라라고 가정.
"중간 선"이라고합니다.
다음 트릭은 중간 선을 가져 와서 Y 축에서 회전 오프셋을 계산하는 것입니다.
이제 제 삼각은 녹슬지 않습니다.
dx = tmx-bmx, dy = tmy-bmy.
따라서 각도의 탄젠트는 dy/dx입니다. 아크 탄젠트 (arctangent, dy/dx)는 선의 각도입니다.
오리엔테이션을받을 수 있습니다.
(마음은, 몇 가지 사분면과 게임, 표지판,이 권리를 얻을 수있는 물건이 -하지만이 그것의 요점입니다.)
당신이 방향을 갖게되면, 당신이 할 수있는 "회전"라인 다시 Y 축으로 수학을위한 2D 그래픽을 보아라.
정상적인 방향으로 안내합니다. 그런 다음이 새로운 표준 형식으로 직사각형 점을 계산하고 마지막으로 다시 회전시킵니다.
비올라. 구형.
"할 수있는 일은"위쪽 "선의 길이의 절반 인 선을 중간 선의 90 도가있는 곳으로"회전 "시키는 것입니다. 그래서 45도 중간 선이 있다고 가정 해보십시오. tmx, tmy에서이 줄을 시작하고이 줄을 135도 (90 + 45) 회전시킵니다. 그 점이 당신의 "좌상"구석이 될 것입니다. "오른쪽 상단"지점을 얻으려면 -45 (45 - 90)를 돌려주십시오. 그런 다음 더 낮은 지점과 비슷한 것을하십시오.
난 다시 내 대답을 ... 이것은 해결할 수 있습니다! – Dolph
나는 어떤 각도로도 회전 할 수 있으며 각도를 모른다는 것을 알고 있습니까? – Casey
@Casey, correct. – icco