2010-03-05 3 views
0

3D 공간에서 두 점 A와 B가 주어지면 선분 LS를 얻습니다. 주어진 두 개의 새로운 점 A '와 B'가 선분 LS '를 생성 할 때 LS를 LS'로 변환하는 변환 행렬을 찾아야합니다. 선분의 길이는 같다고 가정합니다.두 행을 정렬하는 변환 행렬을 찾는 방법은 무엇입니까?

매트릭스를 계산하는 방법에 대한 이론을 가지고 있지만 훌륭한 이론인지 아니면 더 나은 접근 방법이 있는지에 대한 훌륭한 의견을 보내 주셨습니다. 여기

내 알고리즘입니다 :

  1. 하자 L과 L L은 L '
  2. 이 L 사이의 각도 V를 찾기 교차하는 곳
  3. 점 P를 찾기'선이 LS에 평행 LS 수 '는 L '는
  4. 최종 변환 행렬이 될 것이다

    변환 (-P) * 회전 (V) * 변환 (p)

호기심에 대한 배경 : 저는 수학 문제가 아주 일반적 일지라도 XNA에서 이것을 구축하고 있습니다. 선 세그먼트는 연결된 세그먼트의 더 큰 구조의 일부입니다. 각 세그먼트에 대해 애니메이션 프레임 당 변환 행렬을 미리 계산할 것입니다.

+0

해당 줄은 항상 교차합니까? – tafa

+0

@tafa : 아니, 그것을 지적 해 주셔서 감사합니다. 사실, 그럴 가능성이 높고, 생각할 때, 어떤 상황에서는 평행 할 것이라고 보장 할 수는 없습니다. –

답변

2

A에서 A '로의 교차점을 찾는 것 대신에 충분합니다. 그런 다음 아마 2 회전을 요구할 것입니다. 하나는 동일한 평면에 두 줄을 만들고, 다른 하나는 실제로 그것들을 정렬하는 것입니다.

+0

예, 작동하고 생각하면 안전 할 것입니다 : LS와 LS '가 평행하면 초기 알고리즘에 문제가 발생할 것입니다. –

관련 문제