1

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です。

円の方向を制御できますか? 作成後に方向を反転することは可能ですか?

4

0 に答える 0