2017-04-09 12 views
0

는 다음의 평등과 교육을 고려 : ab 세그먼트의 사지 있습니다세그먼트의 포인트 투사 : 세그먼트의 사지가 동일한 좌표를 갖는 경우는 어떻습니까?

p = ((x - a).(b - a))/((b - a).(b - a)) (b - a) + a

, x 우리는이 세그먼트와이 세그먼트에서 xp 프로젝션에 투사 할 점. 모두 벡터 점입니다.

지금 p 코드 세트 '는 님의 X 좌표 :

  coords_p.add(
       "" 
         + (

         ((test_x - segment_first_point_x) * (segment_last_point_x - segment_first_point_x)) // "((x - a).(b - a))" 
           /
           (// "((b - a).(b - a))" 
             (segment_last_point_x - segment_first_point_x) * (segment_last_point_x - segment_first_point_x) 

           ) 

           * 
           (segment_last_point_x - segment_first_point_x) // "* (b - a)" 

         + 

         segment_first_point_x) // " + a" 
     ); 

를 이제 같은 p에 대한의 Y 좌표 :

 coords_p.add(
       "" 
         + (

         ((test_y - segment_first_point_y) * (segment_last_point_y - segment_first_point_y)) // "((x - a).(b - a))" 
           /
           (0.00001+ // "((b - a).(b - a))" 
             (segment_last_point_y - segment_first_point_y) * (segment_last_point_y - segment_first_point_y) 

           ) 

           * 

           (segment_last_point_y - segment_first_point_y) // "* (b - a)" 

         + 

         segment_first_point_y) // " + a" 

     ); 

당신이 볼 수 있듯이, segment_last_point_y == segment_first_point_y OR 경우 | segment_last_point_x == segment_first_point_x이면 분모의 분모는 0이됩니다.

따라서 p의 좌표 중 하나 (또는 ​​둘 다)는 NaN ("숫자가 아님")이됩니다. 이는 유효하지 않습니다.

그래서 나는 계획을 세우는 방법을 이해하지 못했다고 생각합니다. 저에게 계발 해주시겠습니까?

답변

1

안녕하세요 다시 문제는 페이지의 당신의 계산에, 그것은 안 또는 당신이 설명하는대로 P 공식의 계수의 분모의 (b이기 때문에, 그것은 해야입니다 :) -) (b-a). a와 b가 같은 점인 경우에만 0이되어야합니다. 즉, 실제로 선분이 없습니다.