🙇‍♀️Vector

  1. 위치 벡터
  2. 방향 벡터

🪐위치 벡터

  • 위치 벡터
    • position 좌표를 나타낸다

MyVector to = new MyVector(10.0f, 0.0f, 0.0f);

MyVector from = new MyVector(5.0f, 0.0f, 0.0f);

🪐방향 벡터

  • 방향 벡터
    • 거리 (크기)
    • 실제 방향

MyVector dir = to - from;

거리 = (5.0f, 0.0f, 0.0f) 방향 = -> (+X 방향)

  • magnitude
    • 벡터의 크기를 가져옴
  • normalized
    • 벡터의 크기를 단위벡터로 만듦
    • 단위벡터 = 크기가 1인 벡터

🪐Vector 코드 구현

struct MyVector
{
    public float x;
    public float y;
    public float z;

    public float magnitude { get { return Mathf.Sqrt(x * x + y * y + z * z); } }
    public MyVector normalized { get { return new MyVector(x / magnitude, y / magnitude, z / magnitude); } }

    public MyVector(float x, float y, float z) { this.x = x; this.y = y; this.z = z; }

    public static MyVector operator +(MyVector a, MyVector b)
    {
        return new MyVector(a.x + b.x, a.y + b.y, a.z + b.z);
    }

    public static MyVector operator -(MyVector a, MyVector b)
    {
        return new MyVector(a.x - b.x, a.y - b.y, a.z - b.z);
    }

    public static MyVector operator *(MyVector a, float d)
    {
        return new MyVector(a.x * d, a.y * d, a.z * d);
    }
}

태그:

카테고리:

업데이트: