[英]Java - filling an overlapping polygon
我正在尝试在AWT中绘制5点星。 2d网格中的每个点相隔72度-因此,我认为可以通过将点之间相距144度进行排序而仅使用5个点来绘制多边形,因此多边形以1,3,5,2,4的顺序馈入点
不幸的是,这涉及许多相交的线,最终结果是有5个三角形具有我想要的颜色,并围绕一个未着色的五边形。
纵观它,它与奇数规则有关,即不会填充相交的点。
我需要动态绘制恒星,并使用所描述的特定形状(用于缩放等)。 如果我手动绘制相交的点,我的恒星形状会出现一些人为错误。
有没有办法关闭此功能,否则,是否有办法使多边形返回直线相交的x []和y []数组,因此我可以在其中绘制另一个?
谢谢。
用两个交替半径的十个点(相隔36度)绘制它。
按照relet的建议并如本示例所示,在笛卡尔坐标中建立10点Polygon
。 请注意,坐标系统如何以原点为中心,以便于旋转,缩放和平移。 由于Polygon
实现了Shape
接口,因此可以应用AffineTransform
的createTransformedShape()
方法。 在这里可以找到更高级的形状库。
有没有办法让多边形返回线相交的
x[]
和y[]
数组?
尽管通常不需要,但是您可以使用Shape's
PathIterator
检查组件坐标。 我发现在调用createTransformedShape()
之前和之后检查坐标createTransformedShape()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.