在Java Graphics2D中,判斷圓形和矩形是否相交可以使用Java自帶的Rectangle類和Ellipse2D類來實(shí)現(xiàn)。Rectangle類代表矩形,而Ellipse2D類代表圓形和橢圓形。利用它們的相交(intersect)方法可以得到圓形和矩形是否有交集。
Rectangle rectangle = new Rectangle(x, y, width, height); // 矩形 Ellipse2D ellipse = new Ellipse2D.Double(x, y, width, height); // 圓形或橢圓形 boolean isIntersect = rectangle.intersects(ellipse.getBounds2D());
其中,x、y、width、height代表矩形或圓形的位置和大小。isIntersect為一個(gè)布爾值,表示圓形和矩形是否相交。
以下是一個(gè)完整的示例代碼:
import java.awt.Rectangle; import java.awt.geom.Ellipse2D; public class Main { public static void main(String[] args) { int x1 = 50, y1 = 50, w1 = 100, h1 = 100; // 矩形1位置和大小 int x2 = 80, y2 = 80, w2 = 100, h2 = 100; // 矩形2位置和大小 // 判斷矩形2和圓形是否相交 Rectangle rect = new Rectangle(x2, y2, w2, h2); Ellipse2D ellipse = new Ellipse2D.Double(x1, y1, w1, h1); boolean isIntersect = rect.intersects(ellipse.getBounds2D()); System.out.println("矩形和圓形是否相交:" + isIntersect); } }
運(yùn)行結(jié)果為:
矩形和圓形是否相交:true