2011-12-12 139 views
0

在我寫的代碼中,我試圖確定何時兩個Rectangle2D形狀已經相交。但是,當我運行代碼時,即使形狀顯然不是,相交方法總是返回true。如果有人對此問題有所瞭解,我將不勝感激。Java矩形相交方法

Graphics2D g2 = (Graphics2D) getGraphics(); 
    FontRenderContext context = g2.getFontRenderContext(); 

    Rectangle2D rectangleOne = fontOne.getStringBounds(blockOne, context); 
    Rectangle2D rectangleTwo= fontTwo.getStringBounds(blockTwo, context); 

    if(rectangleOne.intersects(rectangleTwo)){ ... 

回答

1

getStringBounds方法返回一個邏輯邊界。要獲得圖形邊界,請改爲使用TextLayout.getBounds

例子:

Font font = Font.getFont("Helvetica-bold-italic"); 
FontRenderContext frc = g.getFontRenderContext(); 
TextLayout layout = new TextLayout("This is a string", font, frc); 
+0

如何使用TextLayout.getBounds方法?我導入了TextLayout包,但似乎無法弄清楚如何調用該方法。 – rmp2150

+1

已被更新回答。 –

+0

謝謝你的幫助。你的回答讓我意識到我犯了一個重大錯誤。 – rmp2150