如何用孔创造形状?

时间:2013-10-27 10:51:44

标签: java awt shape

如何在Java中创建带孔的形状?

我想在里面创建一个带圆孔的圆圈。

如果我只是将Ellipse2D添加到Path我就没有漏洞了。

更新

我发现,缠绕规则控制着:

public class Try_Holes_01 {

    public static void main(String[] args) {

        //final Path2D path = new Path2D.Double(Path2D.WIND_EVEN_ODD);
        final Path2D path = new Path2D.Double(Path2D.WIND_NON_ZERO);

        path.append(new Ellipse2D.Double(100,100,200,200), false);
        path.append(new Ellipse2D.Double(120,120,100,100), false);

        @SuppressWarnings("serial")
        JPanel panel = new JPanel() {
            @Override
            protected void paintComponent(Graphics g) {
                super.paintComponent(g);
                Graphics2D g2 = (Graphics2D) g;

                g2.fill(path);
            }
        };

        JFrame frame = new JFrame();
        frame.setLayout(new BorderLayout());
        frame.add(panel, BorderLayout.CENTER);
        frame.setSize(800, 600);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);


    }

}

即。它用WIND_EVEN_ODD画出洞,但用WIND_NON_ZERO画出填充的形状。

但现在我想知道,是否可以用WIND_NON_ZERO画出洞?

根据文档,这条规则与平价有关。所以,显然,如果我能够改变内圈方向,那么它会用WIND_NON_ZERO画出洞。

是否可以控制圆周方向?我可以在创作后反转方向吗?

0 个答案:

没有答案