当前位置: 首页 > 知识库问答 >
问题:

Java寻找两条线的交点[闭合]

夏侯智鑫
2023-03-14

想改进这个问题吗?通过编辑这篇文章来更新问题,使其仅关注一个问题。

请在类 [Line] 中实现方法交集(线) 它必须返回两条线的交集 []。

注意,直线由线性方程定义:y=k*xb。行构造函数将kb系数作为参数

如果线重合或不相交,该方法必须返回null。我们使用< code>int作为参数和坐标域,这似乎令人惊讶。关键是使用< code>double会带来一些额外的复杂性,这是我们希望在这个基本练习中避免的。所有测试都在中选择,以诱导无余数的计算。

您可以在类[Main]中检查您的结果

//这是Line类

public class Line {

public Line(int k, int b) {

}

public Point intersection(Line other) {
    throw new UnsupportedOperationException();
}

}

点类在这里

public class Point {
private final int x;
private final int y;

public Point(int x, int y) {
    this.x = x;
    this.y = y;
}

@Override
public String toString() {
    return String.format("(%d;%d)", x, y);
}

}

主类与主方法

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    int k1 = scanner.nextInt();
    int b1 = scanner.nextInt();
    int k2 = scanner.nextInt();
    int b2 = scanner.nextInt();

    Line line1 = new Line(k1,b1);
    Line line2 = new Line(k2,b2);

    System.out.println("result is " + line1.intersection(line2));

}

}

共有1个答案

轩辕经国
2023-03-14

这里有一个提示。

    < li> 第1行-

如果它们相交,则y1=y2x1=x2对于某些行,Line1和Line2。所以让x=x1=x2y=y1和y2

现在做一点数学,在纸上

    < Li > < code > m1 * x B1 = m2 * x B2 < li > <代码>(m1 - m2) * x = (b2-b1) < Li > < code > x =(B2-B1)/(m1-m2)

现在将x插入上述方程中的任何一个,以获得y。您的交集将位于(x, y)。然后转换为Java。

注意:某些斜坡会抛出异常。

 类似资料:
  • 假设我有下面的线性字符串的GeoDataFrames,其中一个表示道路,一个表示轮廓线。 如果我绘制这些,它们看起来像这样: 有3条等高线和2条道路。我想找到每条道路上每个点的高程。基本上,我希望与道路和等高线相交(应该给我12个点),并保留两个地理数据框(道路名称和高程)的属性。 我可以使用两个GeodataFrame并集的交点生成12个点: 但是,现在如何获得这12个点中每个点的道路名称和高程

  • 我有一个geopandas数据框,其中包含几个从lat、lon点数据创建的线串。对于所有直线交点,我需要在每个直线串中找到距离该交点最近的点。 因此,如果dataframe中的两条线相交,我需要在每个linestring中找到距离该相交点最近的点。我使用itertools找到了所有可能的交叉点,这些交叉点与本文中公认的答案类似:https://gis.stackexchange.com/quest

  • 我有一个横跨各种多边形的线串,存储为GeoJsons。我想在每个多边形区域内将线条分割成单独的部分。然而,我还没能做到这一点。这是我到目前为止的一个可复制的例子: 然后我尝试通过多边形分割直线,如下所示: 但我得到了以下输出,这似乎不正确: 我期望有三条线,一条存在于正方形多边形内,然后两条分别存在于多边形外。

  • 我终于能够安装最新版本的pylucene,尽管我无法找到如何完成一些基本功能的教程或示例,如索引、指定查询和检索文档。

  • 我已经读过一些其他的堆栈溢出线程: 在java中求两个多集的交集 我如何获得两个数组之间的交集作为一个新数组? 我试图检查两个数组以及它们的元素数(numElementsInX和numElementsInY),并返回一个包含数组x和y的公共值的新数组。他们的交集。 编辑代码

  • 问题和问题应该在同一代码中。 问题A: 实现接受两个参数整数值的Ponto类构造函数​​价值观​​分别是属性x和y。 实现另一个构造函数,构造函数将类属性(x和y)初始化为零。请注意,这里我们使用静态多态。* 问题B 实现一种检查两点是否相等的方法,即检查两点是否具有相同的值​​对于x和y,其中一个点将在方法调用中隐式传递,另一个传统方法将作为参数传递。然后实现计算两点之间距离的方法,对于该方法,