我有一條由兩點(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