0

前回の質問でいただいたアドバイスに感謝します。もう1つ質問があります。顔を描きたい、丸いピンク色の顔。その丸いピンク色の顔に、真っ赤な笑顔を添えたい。そして、JSlider を使用して、その笑顔を伸ばしたり短くしたりしたいと考えています。以前の質問では、円 A の中心を円 B に合わせ、円 A と円 B の中心が常に一致するように JSlider を使用して円 B の半径を増減する方法について説明しました。私は私が得た答えを理解しています。しかし、JSlider が笑顔を伸ばしたり縮めたりするように顔 (つまり OVAL) の笑顔 (つまり ARC) を修正するにはどうすればよいですか。言い換えれば、笑顔は顔に固定されたままでなければなりません。アドバイスが必要です。私の(間違った)コードは次のとおりです。

    public void createGUI() {
    slider1Label = new JLabel("Mouth width(10-100): ");
    window.add(slider1Label);

    slider1 = new JSlider(JSlider.HORIZONTAL,10,100,10);
    window.add(slider1);
    slider1.addChangeListener(this);
    }

    public void stateChanged(ChangeEvent e) {

    Graphics paper = panel.getGraphics();
    int slider1Value = slider1.getValue();
    paper.setColor(Color.white);
    paper.fillRect(0, 0, 500, 500);


    paper.setColor(Color.pink); // draw the pink interior of the face
    paper.fillOval(50,50,200,200);
    paper.setColor(Color.black); // draw the black exterior border of the face
    paper.drawOval(50,50,200,200);


    paper.setColor(Color.red); // draw the red mouth
    paper.fillArc(90,140,220-slider1Value,150-slider1Value,20,-220);
    }
4

0 に答える 0