sun.awt.geom.Crossings是做什么的?

4

我已经离开Java有几年了,所以请原谅我的生疏。我继承了一些针对Java SE 1.5的代码。在Java 1.7.0下构建时,有几个带有以下文本的构建警告:

Crossings是内部专有API,可能会在未来的版本中被删除。

我想通过自己的代码解决这个构建警告。检查代码后,我发现问题所在的完整类是sun.awt.geom.Crossings。当然,OpenJDK代码是可用的,但我不理解该类的整体目的或其具体实现。 sun.awt.geom.Crossings的目的是什么?我在哪里可以找到更多文档?


查看此链接 http://docstore.mik.ua/orelly/java/awt/ch02_01.htm#JAWT-CH-2-FIG-9 。"填充多边形"是一个复杂的话题。它不像填充矩形或椭圆那么容易,因为一个多边形可能没有闭合,并且其边缘可能会相交。 AWT使用偶奇规则来填充多边形。该算法通过计算每个扫描线穿过多边形的边缘的次数来工作。如果当前点左侧的穿越总数是奇数,则着色该点。否则,保留该点不变。 - ee.
你可以看到这里使用了Crossings类,例如:Area.contains()来检查一个矩形区域在另一个区域内的交叉情况。在http://kickjava.com/src/java/awt/geom/Area.java.htm中。由于它的应用大多数是在其他常用类内部使用,所以你不必太担心。但是,如果你直接使用它,那么将来可能会遇到问题! - ee.
1
@ee, 谢谢。这基本上就是我需要的信息了。是的,问题代码的原作者确实直接使用了 Crossings,这也正是我试图修复的问题。您可以考虑将您的评论发布为答案。 - Andrew
1个回答

1

由于@ee.没有回来将他/她的评论重写为答案,我在这里代替他/她。如果@ee.路过的话,我很乐意把勾选标记放在你的答案上。

查看此http://docstore.mik.ua/orelly/java/awt/ch02_01.htm#JAWT-CH-2-FIG-9

填充多边形是一个复杂的主题。它不像填充矩形或椭圆那么容易,因为多边形可能没有闭合,其边缘可能会交叉。AWT使用偶奇规则来填充多边形。该算法通过计算每个扫描线穿过多边形边缘的次数来工作。如果当前点左侧的总穿越次数是奇数,则着色该点。如果是偶数,则保持原样。

你可以看到这里使用了Crossings类;例如:Area.contains()用于检查区域内矩形区域的交叉点。在http://kickjava.com/src/java/awt/geom/Area.java.htm中可以看到更多信息。由于它的应用大多数情况下都是在其他常用类中使用,所以你不必太担心。但是,如果你直接使用它,那么将来可能会遇到问题!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接