我有一条由两点(A和B)和另一点(C)表示的线,它不属于这一行。如何获得包含给定点(C)的平行线的起点和终点?
修改
我有快速的课程,代表画面上的眼线。
var eyesLine = Line(start: rightEye, end: leftEye)
其中rightEye和leftEye是CGPoint实例;
我想得到代表嘴巴的线条。从CIDetector我收到口腔中心。假设,那个角度与眼睛是一样的,我想得到线条,与眼睛平行。
答案 0 :(得分:0)
线方程为y = mx + b
。因此,如果你想要一条平行线,你应该有一条具有相同斜率(m
)的线,但要考虑你需要的点(C)。
以下公式也是如此:m = (y_B - y_A) / (x_B - x_A)
所以基本上你需要用你的观点来解决以下等式:
b = y_C - ((y_B - y_A) / (x_B - x_A)) * x_C
然后您只需要通过更改y
的值来计算您选择的另一个x
坐标(因为C已经是新行的一个点):
y_D = ((y_B - y_A) / (x_B - x_A)) * x_D + (y_C - ((y_B - y_A) / (x_B - x_A)) * x_C)
为了简化您的任务,您可以假设x_D = 0
(示例),然后您只需计算:
y_D = y_C - ((y_B - y_A) / (x_B - x_A)) * x_C
您的最终积分将有(x_C, y_C)
和(0, y_D)
坐标。
注意:强>
在脚本开始时,您还应该检查x_A = x_B
是否正确。如果确实如此,那么您的最终得分将具有(x_C, y_C)
和(x_C, y_D)
坐标,其中y_D
可以是y_C
以外的任何值。
HTH;)