0
考慮下面的平等和指令:投影段中的點:如果段的末端具有相同的座標?
p = ((x - a).(b - a))/((b - a).(b - a)) (b - a) + a
凡a
和b
是該段的末端,x
我們希望在這一領域,並p
在這部分的x
投射到投影點。所有是矢量點。
現在設置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
(「不是數字」):它將是無效的。
所以我覺得我不明白如何投射點......請問您能否賜教?