简体   繁体   English

如果我们知道距离x1,y1,y2,则计算x2

[英]Calculate x2 if we know distance, x1, y1, y2

How can I calculate x1 in Java if I know the distance, x2, y1 and y2 of two points. 如果我知道两点的距离x2,y1和y2,如何在Java中计算x1。

I made a picture to be easier to understand: 我做了一张图片以便于理解:

在此处输入图片说明

If we know the x1, x2, y1, y2 is easy to calculate the distance. 如果我们知道x1,x2,y1,y2很容易计算距离。 But if we know the distance? 但是,如果我们知道距离? How can I calculate with delta? 如何计算增量?

Note that there are usually two solutions to this; 请注意,通常有两种解决方案。 corresponding to essentially what is a 'reflected' solution. 基本上对应于“反射”解决方案。

if d is the distance, then x2 is at 如果d是距离,则x2

x1 +/- sqrt(d * d - (y2 - y1) * (y2 - y1));

Where +/- means "plus or minus". 其中+/-表示“正负”。 That is to repeat, x1 can be in two different places. 重复一遍, x1可以位于两个不同的位置。

d^2 = (x2-x1)^2 + (y2-y1)^2

(x2-x1)^2 = d^2 - (y2-y1)^2

x2-x1 = +- sqrt(d^2 - (y2-y1)^2)

x2 = x1 +- sqrt(d^2 - (y2-y1)^2)

If you know the distance, you can use it's formula: 如果您知道距离,则可以使用以下公式:

d = sqrt(sqr(x2 - x1) + sqr(y2 - y1))

With that, you can re-arrange it to find x1 using simple algebra, but I'll let you figure that out. 这样,您可以使用简单的代数将其重新布置为x1,但我会让您知道。

First, you need to solve for x2: 首先,您需要解决x2:

d = sqrt((x1-x2)^2+(y1-y2)^2)
d^2 = (x1-x2)^2+(y1-y2)^2
d^2-(y1-y2)^2 = (x1-x2)^2
sqrt(d^2-(y1-y2)^2) = (x1-x2)
x2 = x1-sqrt(d^2-(y1-y2)^2)

Now, it's just a matter of expressing this in java: 现在,只需在Java中表达这一点即可:

double x2 = x1 - Math.sqrt(Math.pow(d, 2) - Math.pow(y1 - y2, 2));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 按钮无法绘制具有坐标(x1,x2,y1,y2)的折线图 - Button not working to draw line graph having its coordinate (x1, x2, y1, y2) 如何划分字符串(x1,y1)(x2,y2)格式 - How to divide string (x1,y1)(x2,y2) format 如何重新格式化 GetVertices 以返回 (x1,y1,0), (x2,y2,0), (x3,y3,0);? - How to re format GetVertices to return (x1,y1,0), (x2,y2,0), (x3,y3,0);? 在java中以给定速度以直线将对象从点(x1,y1)移动到点(x2,y2)的方法 - Method to move an object from point(x1,y1) to point(x2,y2) at a given speed in a straight line in java 给定两个点 A(x1,y1) & B(x2,y2),我想在球面上找到第三点 C(x3,y3) 和线 AB 之间的距离和 AD 的长度 - Given two points A(x1,y1) & B(x2,y2), I want to find the distance between the third point C(x3,y3) and line AB and length of AD on spherical surface 如何确定百万数据点中的哪些点 (x,y) 位于矩形 (x1, x2, y1, y2) 所描述的区域内? - How to determine which points (x,y) out of million data points lie inside the area described by a rectangle (x1, x2, y1, y2)? 如何使用Quartz库每天在XX:XX处安排从日期X1 / Y1 / Z1到日期X2 / Y2 / Z2的某些任务? - How can I use Quartz library to schedule some task from date X1/Y1/Z1 to date X2/Y2/Z2 at XX:XX every day? 在X1 y1 X2 y2形式的10,000个点的文件中,如何检测至少四个正方形? 爪哇 - In a file of 10,000 points of the form X1 y1 X2 y2 ,,, How to detect at least 4 which form a square ? java 为什么 x *= (y1*y2*y3)/z1 没有给出与 JAVA 中的 x = x * (y1*y2*y3)/z1 相同的答案 - Why is x *= (y1*y2*y3)/z1 not giving the same answer as x = x * (y1*y2*y3)/z1 in JAVA Java - setXY(x1, y1) 和新的 Object 有什么区别 - Java - What the difference of setXY(x1, y1) and new Object
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM