【Java】三角関数の計算とグラフの表示

【Java】三角関数の計算とグラフの表示

このページでは、Javaを使った三角関数の計算とグラフの描画方法について解説します。以下のリンクを使って、各セクションにジャンプできます。

三角関数の基礎知識

三角関数は、角度と比率の関係を扱う数学の分野です。特に重要なのは次の3つの関数です。

  • 正弦 (sine): \( \sin \theta \)
  • 余弦 (cosine): \( \cos \theta \)
  • 正接 (tangent): \( \tan \theta \)

これらは、直角三角形の辺の比率や、単位円上の点の座標として定義されます。

たとえば、単位円を使った定義は次の通りです:

  • \( \sin \theta = \frac{\text{y座標}}{\text{半径}} \)
  • \( \cos \theta = \frac{\text{x座標}}{\text{半径}} \)
  • \( \tan \theta = \frac{\sin \theta}{\cos \theta} \)

Javaでの三角関数の計算

Javaでは、Mathクラスを使用して三角関数を計算できます。以下に主なメソッドを示します。

  • Math.sin(double angle): 角度をラジアンで指定して、正弦を返す。
  • Math.cos(double angle): 角度をラジアンで指定して、余弦を返す。
  • Math.tan(double angle): 角度をラジアンで指定して、正接を返す。
  • Math.toRadians(double degrees): 度をラジアンに変換する。
  • Math.toDegrees(double radians): ラジアンを度に変換する。

以下は具体的な例です:

public class TrigonometryExample {
    public static void main(String[] args) {
        double degrees = 45.0;
        double radians = Math.toRadians(degrees);

        // 正弦、余弦、正接の計算
        double sinValue = Math.sin(radians);
        double cosValue = Math.cos(radians);
        double tanValue = Math.tan(radians);

        System.out.println("角度: " + degrees + " 度");
        System.out.println("sin: " + sinValue);
        System.out.println("cos: " + cosValue);
        System.out.println("tan: " + tanValue);
    }
}
    

上記のコードを実行すると、次のような結果が得られます:

角度: 45.0 度
sin: 0.7071067811865475
cos: 0.7071067811865476
tan: 0.9999999999999999
    

三角関数のグラフ表示

Javaで三角関数のグラフを描画するには、JavaFXSwingを使用することが一般的です。以下はSwingを使った例です。

import javax.swing.*;
import java.awt.*;

public class SineGraph extends JPanel {
    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g;

        int width = getWidth();
        int height = getHeight();
        int centerX = width / 2;
        int centerY = height / 2;

        // グリッドと軸の描画
        g2d.drawLine(0, centerY, width, centerY); // X軸
        g2d.drawLine(centerX, 0, centerX, height); // Y軸

        // sin波の描画
        g2d.setColor(Color.RED);
        for (int x = -180; x <= 180; x++) {
            int xPixel = centerX + x;
            int yPixel = centerY - (int) (100 * Math.sin(Math.toRadians(x)));
            g2d.fillOval(xPixel, yPixel, 2, 2);
        }
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame("Sine Graph");
        SineGraph panel = new SineGraph();

        frame.add(panel);
        frame.setSize(800, 400);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}
    

このプログラムを実行すると、sin関数のグラフが描画されます。

同様の方法で、cos関数やtan関数のグラフも描画可能です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です