我有一条由两点(A和B)表示的线和另一个不属于此线的点(C)。如何获得包含给定点(C)的平行线的起点和终点?获取一条平行线
编辑
我有对图片代表眼睛的线迅速类。
var eyesLine = Line(start: rightEye, end: leftEye)
where rightEye and leftEye are CGPoint instances;
我想获得代表嘴巴的线。从CIDetector我收到口中心。假设,那个角度和眼睛是一样的,我想得到一条线,与眼睛平行。
我有一条由两点(A和B)表示的线和另一个不属于此线的点(C)。如何获得包含给定点(C)的平行线的起点和终点?获取一条平行线
编辑
我有对图片代表眼睛的线迅速类。
var eyesLine = Line(start: rightEye, end: leftEye)
where rightEye and leftEye are CGPoint instances;
我想获得代表嘴巴的线。从CIDetector我收到口中心。假设,那个角度和眼睛是一样的,我想得到一条线,与眼睛平行。
线方程为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;)
您是否尝试过某些东西? – RCaetano
我不确定,如果我理解你的问题。我尝试过什么? –
'D = C + B - A' – Sneftel