【C#】クラスのサンプル(1次元ベクトル)

C#で1次元ベクトルのクラスを作るには、以下のようにします

class Vector1D
{
    public int X { get; set; }

    public Vector1D(int x)
    {
        X = x;
    }

    // ベクトルの大きさ
    public int Magnitude()
    {
        return Abs(X);
    }

    // 絶対値を求める(absolute value)
    int Abs(int value)
    {
        if (value < 0)
        {
            value = -value;
        }

        return value;
    }

    // 足し算
    public Vector1D Add(Vector1D other)
    {
        return new Vector1D(X + other.X);
    }

    // 引き算
    public Vector1D Subtract(Vector1D other)
    {
        return new Vector1D(X - other.X);
    }

    // スカラーの乗算
    public Vector1D Multiply(int scalar)
    {
        return new Vector1D(scalar * X);
    }
}

このクラスは、1次元空間のベクトルを表すために、Valueを持っています。そして、ベクトルの大きさ(magnitude)、足し算、引き算、スカラー倍を計算するためのメソッドを持っています。1次元ベクトルには単位ベクトルやドット積、クロス積といった概念がないため、それらのメソッドを持っていません。

使用例

Vector1D v1 = new Vector1D(3);
Vector1D v2 = new Vector1D(4);

// ベクトルの大きさ
Console.WriteLine(v1.Magnitude());

// 足し算
Vector1D v3 = v1.Add(v2);
Console.WriteLine(v3.Value);

// 引き算
Vector1D v4 = v1.Subtract(v2);
Console.WriteLine(v4.Value);

// スカラーの乗算
Vector1D v5 = v1.Multiply(2);
Console.WriteLine(v5.Value);

実行結果

3
7
-1
6

C#,設計

Posted by hidepon