我有一项任务,用java.awt.Graphics绘制一定数量的圆圈。
绘制圆圈是相当简单的,但我应该画的圆,只有当它出现在可见区域内。我知道我可以调用方法getClipBounds()来确定绘图区域,但是我很难找到一个java实现来确定一个圆圈是否与一个矩形相交。
这是确定我想画的圆圈是否完全可见的正确方法吗?还是有更简单的方法?
发布于 2014-05-18 22:40:38
不要使用Graphics.fillOval(.)方法画这幅画。
相反,您可以使用Graphics2D.fill(Shape)方法。可以使用Ellipse2D类创建椭圆形形状对象。
但是我很难找到一个java实现来确定一个圆圈是否与一个矩形相交。
Shape对象有一个方法,它允许您获得Shape的矩形边界。然后您可以使用Rectangle.contains(.)方法,以确定形状是否完全包含在面板中。
有关更多信息和想法,请访问玩弄形状。
发布于 2014-05-18 22:41:27
使用Ellipse2D.Float实例化对象,例如:
Shape circle = new Ellipse2D.Float(100.0f, 100.0f, 100.0f, 100.0f);基本上,从左到右的参数是:高度、宽度、左上角的X和左上角的Y,通过保持X和Y都大于或等于零,你的圆圈总是可见的。
浮点的参数(.)中的Java 7中的Ellipse2D.Float文档。
http://docs.oracle.com/javase/7/docs/api/java/awt/geom/Ellipse2D.Float.html
https://stackoverflow.com/questions/23727523
复制相似问题