2011-04-13 4 views
1

주어진 점 a (x1, y1)와 점 c (x3, y3)를 주면 기울기 m을 계산할 수 있습니다. 우리가 거리 d를 가지고 있다고 가정하면, x1, y1로부터 c 방향으로 d만큼 거리가있는 점 b (x2, y2)를 찾는 방법을 알아 내기 위해 조금 붙어 있습니다.한 점에서 다른 점을 향한 거리

누구든지 이것을 계산하는 방법을 알고 있습니까? 나는 중점 함수를 사용하는 것에 대해 생각했지만 꽤 빠졌습니다.

도움 말?

+0

프로그래밍 관련되지 않습니다. http://math.stackexchange.com/에서 더 나은 행운을 누릴 수 있습니다. –

+0

@Cody, 나는 수학 단체가 오히려 엘리트 주의자라는 것을 알았다. 그들은이 기본 질문에 웃음을 짓기보다는 구조 상수와 Clebsch-Gordan 계수와 같이 필사자의 대부분이 읽지도 못하는 것을 선호합니다 :-) 이것은 일반적인 프로그래밍이기 때문에 그래픽 및/또는 게임의 측면에서 문제가 있다면 아마도 여기에서 괜찮을 것이라고 생각합니다. 그것은 결국 알고리즘을 요구하고 있습니다. – paxdiablo

+0

감사합니다 paxdiablo - 게임용이므로 일반 프로그래밍 문제라고 생각합니다. – j03m

답변

3

당신이 ac 사이의 전체 거리를 해결할 수 :

 __________________________________ 
df = /(x3-x1)*(x3-x1) + (y3-y1)*(y3-y1) 
    \/ 

이 방법 표준 "제곱의 합의 루트"를 사용합니다.

와 원하는 실제 부분 거리 dp이면, 포인트는 (X2, Y2)에서 찾을 수있다

: 단순히 두 차원에서 정확한 비율 dp/df를 이동

x2 = x1 + dp/df * (x3-x1) 
y2 = y1 + dp/df * (y3-y1) 

.

+0

많은 감사 – j03m

1

다음으로 A에서 B로 방향을 얻을 수 있습니다 :

N = D/D.Length 
:

D = B - A 

그런 다음 (이 크기 1, 또는 길이 1을 의미하는) 방향을 정상화 할 수있다

D.Length = sqrt(D.X * D.X + D.Y * D.Y) 

는 A와 B에 의해 주어진 라인에 포인트를 찾으려면

, 멀리 A로부터 B의 방향으로 X 단위, 당신은 사용합니다 다음

Final = A + N * X 
관련 문제