得到一条平行线

时间:2016-10-10 12:45:53

标签: geometry

我有一条由两点(A和B)和另一点(C)表示的线,它不属于这一行。如何获得包含给定点(C)的平行线的起点和终点?

修改

我有快速的课程,代表画面上的眼线。

var eyesLine = Line(start: rightEye, end: leftEye)

其中rightEye和leftEye是CGPoint实例;

我想得到代表嘴巴的线条。从CIDetector我收到口腔中心。假设,那个角度与眼睛是一样的,我想得到线条,与眼睛平行。

1 个答案:

答案 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;)