gpt4 book ai didi

Java求直线的交点并找到它的坐标和它右边或下面最近的邻居

转载 作者:行者123 更新时间:2023-12-02 01:59:06 25 4
gpt4 key购买 nike

我正在努力寻找一种方法来获取坐标 x 和坐标 Y 的最近点的右侧和下方(如果它们存在),否则不打印任何内容。

public class CheckForIntersection {

double x1, x2, x3, x4, y1, y2, y3, y4, a, b, c, d, e, f, checkLinear, x, y;

CheckForIntersection(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) {
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
this.x3 = x3;
this.y3 = y3;
this.x4 = x4;
this.y4 = y4;

checkintersection();
}

public double getx() {
return x;
}

public double gety() {
return y;
}

public void checkintersection() {
a = y1 - y2;
b = -(x1 - x2);
c = y3 - y4;
d = -(x3 - x4);
e = (y1 - y2) * x1 - (x1 - x2) * y1;
f = (y3 - y4) * x3 - (x3 - x4) * y3;

checkLinear = (a * d) - (b * c);

x = ((e * d) - (b * f)) / checkLinear;
y = ((a * f) - (e * c)) / checkLinear;

System.out.println(a + " " + b + " " + c + " " + d + " " + e + " " + f);
checknearestNeighbour(x, y);

if (checkLinear == 0) {
System.out.println("the intersection is parallel");
} else {
System.out.println("X coordinate:" + x + " X coordinate:" + y);
}
}
}

以下参数的结果应为 2.88889、1.1111。

最佳答案

好吧,我假设“网格”是指这样的结构:

x - x - x
| | |
x - o - o
| | |
o - x - x

其中 x = 节点 & o = 无节点(假设所有交叉点之间的距离相等)

  1. 要确定所有音符的坐标,您需要一个起点(坐标原点)。这可以是网格的左上角或左下角,由您决定。

  2. 然后您可以逐行循环(一个循环用于水平线,一个循环用于每行中的元素),检查每个交叉点是否存在节点(此 ofc 需要一种方法来确定交叉点) 。由于它是一个网格(相同距离),您可以为您的步数运行一个简单的计数器,并确定一条线上每个交叉点的坐标。如果您找到节点 - 存储这些信息

  3. 您现在可以在遍历网格的同时回答您的问题以提高效率,或者在收集信息后单独执行此操作。

关于Java求直线的交点并找到它的坐标和它右边或下面最近的邻居,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51896976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com