복소수란 무엇일까?

박승우·2024년 5월 12일
0

자, 스물 네 번째인 '복소수'를 알아 볼 것이다.

이번 게시물도 수학과 관련된 키워드라서 이론 중심으로 알아 보았다.

복소수가 뭐에요?

위 사진처럼 숫자로 취급되는 식. 수학적 공리 때문에 특수한 환경에서는 여러 복합적인 단위(a, b, x 등의 미지수를 대체하는 철자)로 이루어진 식을 숫자로 취급해야 할 필요성이 있는데, 이 숫자를 '복소수'라고 한다. 가령 수가 1, 2, 3처럼 하나의 숫자로 표현되지 않고 "a+bi" 처럼 여러 단위로 이루어진 식으로 표현되면 이를 복소수라고 한다.

복소수는 여러분야에서 사용된다. 전기공학ㅇ에서는 전기 회로 분석에 사용되고, 신호 처리에서는 주파수 영역에서의 신호를 다루는데 사용된다. 물리학에서는 파동현상이나 양자역학에서 입자의 확률 적 위치를 설명하는데에도 사용이 된다고 한다.

게임분야 사용처

  1. 그래픽 처리: 복소수를 사용하면 게임 내의 물리 엔진이나 그래픽 처리에서 간단하고 효율적인 방식으로 복잡한 계산을 수행할 수 있다.
    특히, 회전 및 변환 작업에서 복소수는 매우 편리하다고 한다.

  2. 애니메이션 및 이동: 캐릭터나 오브젝트의 위치, 회전 및 이동을 정의할 때 복소수를 사용할 수 있다.
    복소수는 각도와 위치를 동시에 표현하는 데에 효과적이라고 한다.

  3. 음악 및 사운드: 게임 내의 음악 및 사운드 효과에서 주파수와 위상을 조절할 때 복소수를 사용할 수 있다.
    예를 들어, 사운드 이펙트의 페이저나 리버브 효과를 구현할 때 유용하다고 한다.

  4. 인공지능: 게임 내에서 인공지능을 구현할 때, 복소수를 사용하여 적절한 결정을 내릴 수 있다.
    예를 들어, 적의 움직임을 예측하거나 특정 상황에서의 최적의 행동을 결정할 때 확률과 위치 정보를 효과적으로 다룰 수 있다고 한다.

사용 예시

using UnityEngine;

public class ComplexRotation : MonoBehaviour
{
    public float rotationSpeed = 30f; // 회전 속도

    // 복소수 변수 정의
    private ComplexNumber rotation = new ComplexNumber(0, 1);

    void Update()
    {
        // 프레임마다 오브젝트를 회전
        RotateObject();
    }

    void RotateObject()
    {
        // 오브젝트를 회전, 복소수를 이용하여 회전
        transform.Rotate(0, 0, rotation.Imaginary * rotationSpeed * Time.deltaTime);
    }
}

// 복소수 클래스 정의
public class ComplexNumber
{
    public float Real { get; set; } // 실수 부분
    public float Imaginary { get; set; } // 허수 부분

    // 생성자
    public ComplexNumber(float real, float imaginary)
    {
        Real = real;
        Imaginary = imaginary;
    }
}

위처럼 코드를 작성해서 사용해보았다...

사실 그냥 Z축으로 돌린 개념이라 복소수를 왜 어떻게 사용해야하는지는 정확하게 보여지지 않는다.

결론 - 느낀 점

복소수의 이론이나 어디분야에서 사용되는지는 알게되었다. 하지만 이 부분을 실질적으로 사용하면 되는지 감이 도무지 잡히지 않는다..

하지만, 게임분야에서 그래픽처리분야에서 사용되고 회전부분에서 사용한다는 점을 파악했기 때문에 어떻게 탐구할 지 방안이 나왔다.

profile
게임을 좋아하는 사람 입니다!

0개의 댓글