簡體   English   中英

如果Shape不在屏幕上,是否執行Graphics2D.draw?

[英]Is Graphics2D.draw performed if the Shape is offscreen?

我目前正在處理一些渲染代碼,我想知道Graphics2D.draw(Shape)是否在屏幕上與屏幕外以完全相同的方式執行。 如果是,是否可以檢查我的形狀(Line2D)是否在屏幕上?

取決於“完全相同”的意思。

就從代碼中調用draw-something()而言,它們通常會發生。 不同的是,在渲染鏈中的某處檢測到該形狀實際上未落入實際渲染區域的條件,並且該形狀實際上未輸出任何像素。

至於檢測“屏幕上”是否有東西,這取決於您將屏幕定義為什么。 合理地,您可以將其定義為Graphics對象描述的區域(很可能只是屏幕的一部分,或者完全不在屏幕上,可能是打印機!)。

如果您尚未更改Graphics實例的剪輯區域,則getClipBounds()會為您提供實際渲染圖形的矩形。 如果您的圖形來自Swing組件,則還可以用組件尺寸替代渲染區域。

一旦有了實際的Rectangle,就可以使用Shape提供的方法來檢測碰撞(contains(),intersects()等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM