我在两个点之间画了一条线(x1,y1
和x2,y2
),但我需要知道它的坐标x3,y3
远离gapSize
点x2,y2
。关于如何解决这个问题的任何想法(如果有帮助,程序是用objective-c编写的)?
问问题
618 次
3 回答
6
您可以简单地将弧度计算为
double rads = atan2(y2 - y1, x2 - x1);
然后得到如下坐标:
double x3 = x2 + gapSize * cos(rads);
double y3 = y2 + gapSize * sin(rads);
这是你的意思吗?
于 2012-05-10T12:59:47.220 回答
1
计算 P1 和 P2 之间的距离:d=sqrt( (y2-y1)^2 + (x2-x1)^2)
然后x2 = (d*x1 + gapSize*x3) / (d+gapSize)
所以x3 = (x2 * (d+gapSize) - d*x1) / gapSize
相似地,y3 = (y2 * (d+gapSize) - d*y1) / gapSize
对不起数学。我没有尝试对其进行编码,但听起来不错。我希望这有帮助。
于 2012-05-10T12:59:19.070 回答
1
有很多方法可以做到这一点。最简单的(对我来说)如下。我会用数学来写它,因为我什至不会拼写 C。
因此,我们希望找到点 C = {x3,y3},给定点 A = {x1,y1} 和 B = {x2,y2}。
点之间的距离是
d = ||B-A|| = sqrt((x2-x1)^2 + (y2-y1)^2)
沿线指向的单位向量由下式给出
V = (B - A)/d = {(x2 - x1)/d, (y2-y1)/d}
一个距离 B 距离为 gapSize 的新点,在该单位向量的方向上是
C = B + V*gapSize = {x2 + gapSize*(x2 - x1)/d, y2 + gapSize*(y2 - y1)/d}
于 2012-05-10T13:14:28.113 回答