我试图在某个方向上绘制一些起始位置的线,但是我想要停止线与线碰撞的点,如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;
}
我尝试过这种方法,但它不适用于旋转的矩形。另外,我不想得到一个数组,但最接近该行的开头。
答案 0 :(得分:0)
但是你的矩形是定义的,你需要得到四个方面。
然后你就像你一样用你的线进行交集。
如果是这样的情况你会有很多:检查你的线路来自哪里;哪个交叉点左上方等等
很多if-cases。