は、以下の平等との命令を考えてみましょう:a
とb
は、セグメントの四肢あるセグメントのポイントを投影する:セグメントの四肢の座標が同じ場合はどうなりますか?
p = ((x - a).(b - a))/((b - a).(b - a)) (b - a) + a
、x
我々はこのセグメントと、このセグメントにおけるx
のp
投影に突出したいポイント。すべてがベクトル点です。
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
の座標の1つ(または両方)は、NaN
(「番号ではない」)になります。無効になります。
私はポイントを投影する方法を理解していないと思う...あなたは私を教えてくれますか?