繁体   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