2011-12-09 6 views
1

좋아, 여기에 이야기가 있습니다. 몇 주 전에 피자 박스 중 하나에서이 문제를 발견했습니다. 피자를 마시기 전에이 문제를 해결할 수 있다면 여행사에 고용 될 것이라고 말했습니다. 내가 고용하려하지 않더라도,이 문제는 내 눈을 가졌고 피자와 저녁 식사에 집중했다. 나는 약간의 가정과 함께 무언가를 연구했다. 다음은 질문입니다.두 사각형의 중심을 연결하는 세그먼트의 길이를 찾는 알고리즘

우리는 P, Q R 및 S를 알고 있다고 가정합니다. 각 직사각형의 중심을 연결하는 선이 있습니다. 우리는 C와 D를 찾아야합니다. 이것을 해결하기 위해 알아야 할 다른 변수가 있는지 확신 할 수 없습니다. 필요 maxthexchange로 이동하지 않으려면 explanation- 프로그래밍 또는 psudo 코드를 찾고 편집

enter image description here

.

제안 사항?

+0

[math exchange] (http : //math.stackexchange.com /) – Claudiu

+0

수학적 설명보다 프로그래밍 방식을 찾고 있습니다. –

답변

4

는 단계별 할 아주 간단 :

  1. 계산 A = (P + Q)/2, B = R + S/2 (성분 별 성분)
  2. 을 A와 B 사이의 선에 대한 방정식은 L(t) = t * A + (1 - t) * (B - A)입니다. 방금 t*에 대한이 선형 방정식을 L(t*).y = Q.y이되도록 C = L(t*)으로 해결하십시오. D.이

또한 사각형을 중복과 같은 병적 인 경우를 결정하기 위해 C 및 D에 대한 해결 때 당신이 얻을 t*의 값을 사용할 수 있습니다 얻을 L (t)와 비슷한 일을 .Y = R.y 마십시오.

+0

+1 나는 이것이 내가 제안한 것보다 훨씬 간단하고 간단하다는 데 동의한다. 나는 그것이 유효하기 때문에 나의 대답을 떠날 것이다. 그러나 이것은 분명히가는 길이다. –

1

실제로 거리를 찾으려면 CD 점을 찾을 필요가 없습니다.

나는 이미 사각형의 좌표를 알고 있다고 가정합니다. 중심점의 좌표와 모서리의 길이를 계산하는 것은 간단합니다.

이제 A을 통과하는 수직선과 B을 통과하는 수평선을 상상해보십시오. 교차점은 X입니다. 또한 C를 통과하는 수직선을 상정하고 직사각형의 상단 모서리와의 교차점을 RS-C'이라고합니다.

너는 평범하게 AX의 길이를 계산할 수 있습니다. 그러나 AX의 길이는 RS의 높이의 절반 + PQ의 높이의 절반 (두 사람 모두 알고 있음) + 의 길이입니다.

이제는 길이가 임을 알고 있습니다 (x라고 부름).

또한 각도를 (그것을 n 전화) 당신이 CC'이 수직 알고 있기 때문에 그 ABA에서 CC'와 B의 좌표하게 계산할 수 있습니다.

Ergo, 세그먼트 CD의 길이는 x * cos(n)입니다.