我有一道数学题。我有 A、B 点的位置 (x,y) 和一个数字 (x)。我想计算点 C、D 的位置。CD 与 AB 垂直且 AC = AD = x。
这是描述我的问题的图片:
谁可以帮我这个事?
谢谢
您没有指定编程语言,但从您之前的问题来看,您似乎对 iOS 上的 (Objective-)C 和 Core Graphics 有一些经验,因此这将是使用 C 和 Core Graphics 数据结构的解决方案:
// Your input data:
CGPoint A = ...
CGPoint B = ...
CGFloat x = ...
// Vector from A to B:
CGPoint vecAB = CGPointMake(B.x - A.x, B.y - A.y);
// Length of that vector:
CGFloat lenAB = hypotf(vecAB.x, vecAB.y);
// Perpendicular vector, normalized to length 1:
CGPoint perp = CGPointMake(-vecAB.y/lenAB, vecAB.x/lenAB);
CGPoint C = CGPointMake(A.x + x * perp.x, A.y + x * perp.y);
CGPoint D = CGPointMake(A.x - x * perp.x, A.y - x * perp.y);
您的问题类似于如何在与线的给定垂直距离处找到一个点?. 如果您想了解更多数学细节,可以参考: http: //mathworld.wolfram.com/Point-LineDistance2-Dimensional.html