C#言語での三角関数の計算とグラフの表示
三角関数の基本について | C#における三角関数の計算方法 | グラフの表示方法 | 実際のコード例 | まとめ
三角関数の基本について
三角関数とは、角度とそれに対応する比率を表す数学的な関数です。最も基本的な三角関数には、sin(サイン)、cos(コサイン)、tan(タンジェント)があります。これらは三角形の辺の長さに基づいて計算され、特に直角三角形で重要です。
- sin(θ) = 対辺 / 斜辺
- cos(θ) = 隣辺 / 斜辺
- tan(θ) = 対辺 / 隣辺
ここで、θは角度を示します。C#を使ってこれらの三角関数を計算し、グラフを表示する方法を学んでいきます。
C#における三角関数の計算方法
C#には、標準ライブラリの中で三角関数を計算するためのメソッドが用意されています。これらの関数を使って、任意の角度に対してsin、cos、tanの値を簡単に計算できます。
三角関数の計算例
例えば、角度30度に対してsin、cos、tanを計算する場合、C#のMathクラスを使って以下のように記述できます。
double angleInDegrees = 30; double angleInRadians = Math.PI * angleInDegrees / 180.0; double sinValue = Math.Sin(angleInRadians); double cosValue = Math.Cos(angleInRadians); double tanValue = Math.Tan(angleInRadians); Console.WriteLine($"sin(30°) = {sinValue}"); Console.WriteLine($"cos(30°) = {cosValue}"); Console.WriteLine($"tan(30°) = {tanValue}");
ここでは、角度を度数法で入力していますが、三角関数はラジアン単位で計算されるため、度からラジアンへの変換が必要です。変換式は、
ラジアン = 度 × (π / 180)
グラフの表示方法
C#を使って三角関数のグラフを描くためには、まずグラフィックスライブラリを使う方法を学ぶ必要があります。WindowsフォームアプリケーションやWPFを使用することで、グラフを表示することが可能です。
ここでは、Windowsフォームを使った簡単なグラフの表示方法を紹介します。
Windowsフォームでのグラフ描画例
まず、フォームに描画するためのコードを書きます。以下の例では、sin関数のグラフを描画します。
using System; using System.Windows.Forms; using System.Drawing; public class GraphForm : Form { public GraphForm() { this.Text = "三角関数のグラフ"; this.ClientSize = new Size(600, 400); } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Graphics g = e.Graphics; Pen pen = new Pen(Color.Blue, 2); // sin関数のグラフを描画 for (int x = 0; x < this.ClientSize.Width; x++) { double angle = x * 2 * Math.PI / this.ClientSize.Width; int y = (int)(this.ClientSize.Height / 2 - Math.Sin(angle) * 100); g.DrawEllipse(pen, x, y, 1, 1); } } public static void Main() { Application.Run(new GraphForm()); } }
このコードは、ウィンドウ内にsin(x)のグラフを描画します。Math.Sin関数を使って、角度に基づくy座標を計算し、それを描画しています。
実際のコード例
上記で紹介したコードを利用して、角度を変化させることで、cos関数やtan関数のグラフも表示できます。以下に、sin、cos、tanのグラフを同じフォームに描画するコードの例を示します。
using System; using System.Windows.Forms; using System.Drawing; public class GraphForm : Form { public GraphForm() { this.Text = "三角関数のグラフ"; this.ClientSize = new Size(600, 400); } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Graphics g = e.Graphics; Pen penSin = new Pen(Color.Blue, 2); Pen penCos = new Pen(Color.Red, 2); Pen penTan = new Pen(Color.Green, 2); // sin関数のグラフを描画 for (int x = 0; x < this.ClientSize.Width; x++) { double angle = x * 2 * Math.PI / this.ClientSize.Width; int ySin = (int)(this.ClientSize.Height / 2 - Math.Sin(angle) * 100); g.DrawEllipse(penSin, x, ySin, 1, 1); // cos関数のグラフを描画 int yCos = (int)(this.ClientSize.Height / 2 - Math.Cos(angle) * 100); g.DrawEllipse(penCos, x, yCos, 1, 1); // tan関数のグラフを描画 int yTan = (int)(this.ClientSize.Height / 2 - Math.Tan(angle) * 20); g.DrawEllipse(penTan, x, yTan, 1, 1); } } public static void Main() { Application.Run(new GraphForm()); } }
このコードでは、sin、cos、tanの3つの関数を異なる色で描画しています。tan関数のスケールを調整するために、y座標に係数を掛けています。
まとめ
C#を使って三角関数を計算し、グラフを表示する方法について解説しました。Mathクラスを利用すれば簡単にsin、cos、tanなどの計算ができます。さらに、Windowsフォームを使うことで、グラフを描画することができ、数学的な視覚化が可能となります。
プログラミングを通じて、数学的な概念をより深く理解することができ、さまざまな応用が期待できます。