你如何获得两条垂直线交叉点的坐标?
How do you obtain the coordinates of a crossing of two perpendicular lines?
线 (xA, yA), (xB, yB) 和 (xC, yC), (xD, yD) 是垂直的。我有点 (xA, yA)、(xB, yB) 和 (xC, yC) 的坐标。我怎样才能得到点 (xD, yD) 的坐标?
如果您需要计算机程序来执行计算,那么我想推荐一个用 Python 编写的简单代码。
只需将 C 点投影到通过 A 点和 B 点的直线上即可轻松计算出 D 点(因此您需要计算这条直线):
import matplotlib.pyplot as plt
from skspatial.objects import Line, Point
point_a = Point([2, 3])
point_b = Point([7, 8])
line_ab = Line.from_points(point_a, point_b)
point_c = Point([-1, 4])
point_d = line_ab.project_point(point_c)
# Plots
_, ax = plt.subplots()
ax. set_aspect('equal')
point_a.plot_2d(ax, c='k', s=100)
point_b.plot_2d(ax, c='r', s=100)
point_c.plot_2d(ax, c='b', s=100)
point_d.plot_2d(ax, c='g', s=100)
line_ab.plot_2d(ax, t_1=-2, t_2=3, c='k')
grid = ax.grid()
下图中蓝色点 C 点,绿色点 D 点。
线 (xA, yA), (xB, yB) 和 (xC, yC), (xD, yD) 是垂直的。我有点 (xA, yA)、(xB, yB) 和 (xC, yC) 的坐标。我怎样才能得到点 (xD, yD) 的坐标?
如果您需要计算机程序来执行计算,那么我想推荐一个用 Python 编写的简单代码。
只需将 C 点投影到通过 A 点和 B 点的直线上即可轻松计算出 D 点(因此您需要计算这条直线):
import matplotlib.pyplot as plt
from skspatial.objects import Line, Point
point_a = Point([2, 3])
point_b = Point([7, 8])
line_ab = Line.from_points(point_a, point_b)
point_c = Point([-1, 4])
point_d = line_ab.project_point(point_c)
# Plots
_, ax = plt.subplots()
ax. set_aspect('equal')
point_a.plot_2d(ax, c='k', s=100)
point_b.plot_2d(ax, c='r', s=100)
point_c.plot_2d(ax, c='b', s=100)
point_d.plot_2d(ax, c='g', s=100)
line_ab.plot_2d(ax, t_1=-2, t_2=3, c='k')
grid = ax.grid()
下图中蓝色点 C 点,绿色点 D 点。