如何获取点,线和缓冲图像或矩形碰撞的位置



我试图画一条从某个起始位置到某个方向的线,但我想把线停在线与bufferedImage或矩形碰撞的点上。如何理解这一点?

public Point2D[] getIntersectionPoint(Line2D line, Rectangle2D rectangle)
{ 
Point2D[] p = new Point2D[4];
    Point2D[] p = new Point2D[4];
    // Top line
    p[0] = getIntersectionPoint(line,
                    new Line2D.Double(
                    rectangle.getX(),
                    rectangle.getY(),
                    rectangle.getX() + rectangle.getWidth(),
                    rectangle.getY()));
    // Bottom line
    p[1] = getIntersectionPoint(line,
                    new Line2D.Double(
                    rectangle.getX(),
                    rectangle.getY() + rectangle.getHeight(),
                    rectangle.getX() + rectangle.getWidth(),
                    rectangle.getY() + rectangle.getHeight()));
    // Left side...
    p[2] = getIntersectionPoint(line,
                    new Line2D.Double(
                    rectangle.getX(),
                    rectangle.getY(),
                    rectangle.getX(),
                    rectangle.getY() + rectangle.getHeight()));
    // Right side
    p[3] = getIntersectionPoint(line,
                    new Line2D.Double(
                    rectangle.getX() + rectangle.getWidth(),
                    rectangle.getY(),
                    rectangle.getX() + rectangle.getWidth(),
                    rectangle.getY() + rectangle.getHeight()));
    return p;
}

我尝试过这种方法,但它不适用于旋转的矩形。此外,我不想得到一个数组,而是最接近直线起点的点。

尽管定义了矩形,但需要获得四边。

然后你和你所做的线进行交叉。

你会有很多if情况:检查你的线路来自哪里;哪个交叉点是左上右下等

很多if案例。

相关内容

  • 没有找到相关文章

最新更新