Wykreślić funkcje sinus i cosinus

Obecnie mam pewne problemy dotyczące mojej pracy domowej.

Oto ćwiczenie:

(Wykreśl funkcje sinusoidalne i cosinusoidalne) Napisz program, który wykreśla funkcję sinusoidalną na czerwono, a funkcję cosinusoidalną na niebiesko.

Wskazówka: Unicode dla Pi to03c0. Aby wyświetlić -2Pi, użyj g.drawString ("- 2 03c0", x, y). Dla funkcji trygonometrycznej, takiej jak sin (x), x jest w radianach. Użyj następującej pętli, aby dodać punkty do wielokątap

for (int x = -170; x <= 170; x++) {
    p.addPoint(x + 200, 100 - (int)(50 * Math.sin((x / 100.0) * 2 * Math.PI)));

-2Pi jest na (100, 100), środek osi znajduje się na (200, 100), a 2Pi jest na (300, 100) Użyj metody drawPolyline wGrafika klasa do łączenia punktów.

Dobra, więc funkcja grzechu, którą mam, jest trochę inna niż w ćwiczeniu, ale działa, więc nie powinno być problemu. Z drugiej strony, funkcja cosinus, mam problem ze znalezieniem kodu, więc nie mam tego w swoim programie.

Muszę też umieścić -Pi i Pi na wykresie w ich szacownych miejscach.

Oto kod.

import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Polygon;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Exercise13_12 extends JFrame {

public Exercise13_12() {
    setLayout(new BorderLayout());
    add(new DrawSine(), BorderLayout.CENTER);
}

public static void main(String[] args) {
    Exercise13_12 frame = new Exercise13_12();
    frame.setSize(400, 300);
    frame.setTitle("Exercise13_12");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);

}

class DrawSine extends JPanel {

    double f(double x) {
        return Math.sin(x);
    }

    double g(double y) {
        return Math.cos(y);
    }

    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        g.drawLine(10, 100, 380, 100);
        g.drawLine(200, 30, 200, 190);

        g.drawLine(380, 100, 370, 90);
        g.drawLine(380, 100, 370, 110);
        g.drawLine(200, 30, 190, 40);
        g.drawLine(200, 30, 210, 40);

        g.drawString("X", 360, 80);
        g.drawString("Y", 220, 40);

        Polygon p = new Polygon();

        for (int x = -170; x <= 170; x++) {
            p.addPoint(x + 200, 100 - (int) (50 * f((x / 100.0) * 2
                    * Math.PI)));

        }

        g.drawPolyline(p.xpoints, p.ypoints, p.npoints);
        g.drawString("-2\u03c0", 95, 115);
        g.drawString("2\u03c0", 305, 115);
        g.drawString("0", 200, 115);
    }
 }
}

Gdyby ktoś miał czas, by mi pomóc, byłbym bardzo wdzięczny.

questionAnswers(4)

yourAnswerToTheQuestion