我试图画一条从某个起始位置到某个方向的线,但我想把线停在线与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案例。