已知点间距与直线L梯度,使用Python求解A、B、C、D四点坐标
使用Python求解矩形顶点A、B、C、D坐标
已知条件
- 各点间的线段长度
- 过中心的直线L的梯度:该直线平行于线段AD、BC,且与线段AB、CD正交
- 问题示意图:

参考实现代码
import numpy as np # 已知直线L的梯度 l_gradient = 0.17 l_angle = np.arctan(l_gradient) # 定义线段长度 ad_distance = 1 ab_distance = 2 # 线段AB、DC的梯度与y轴截距,与直线L正交 ab_gradient = dc_gradient = -1 / l_gradient dc_intercept = (ad_distance / 2) / np.sin(l_angle) # 由直角三角形公式反推 ab_intercept = - dc_intercept # 线段AD、BC的梯度与y轴截距,与直线L平行 ad_gradient = bc_gradient = l_gradient ad_intercept = (ab_distance / 2) / np.cos(l_angle) # 由直角三角形公式反推 bc_intercept = - ad_intercept
内容的提问来源于stack exchange,提问作者Francesco
相关产品推荐
相关产品推荐

