我知道如何在纸上进行数学运算,但我正在努力弄清楚如何将潜在的负值考虑在内。
给定 2 个位置:endpoint(x1, y1) 和 midpoint(x2, y2) 找到另一个端点位置
我会评论,但我的代表太低了。没有代码就很难说。您需要做的是区分两者之间的绝对距离,根据两者之间的距离是负的还是正的来确定方向,然后进行数学运算。
Example: x1 = 2, x2 = 0, y1 = 0, y2 = 0
distance = -2x, 0y
x2 - 2 = -2 = x3
y3 = 0
如果你给我们看一些代码会更容易,但换句话说,只要找到 x1 和 x2 之间的距离,就可以得到 x2 和 x3 之间的距离。对 y 做同样的事情。
Point2D endpoint; //defined elsewhere
Point2D midpoint; //defined elsewhere
Point2D otherend = new Point2D(endpoint.getX() + 2 * (midpoint.getX() - endpoint.getX()),
endpoint.getY() + 2 * (midpoint.getY() - endpoint.getY()));
(对不起——我第一次犯了一个愚蠢的错误。)
您可以使用这两个点来找到线的方程(y = mx + b)并通过找到您知道的线部分的长度(Sqrt(x ^ 2 + y ^ 2))然后在正面画线您找到的长度的 x 方向。