C#) 값 형식과 참조 형식
·
Programming/C C# C++
C#은 데이터의 메모리 저장 방식에 따라 두 개의 타입으로 나뉘게 된다.바로 값 형식(Value Type)과 참조 형식(Reference Type)이다. 두 형식은 다음과 같은 차이점이 있다.값 형식(Value Type)참조 형식(Reference Type)변수에 값을 대입하는 데이터 형식int, double형 등등이 있다.데이터를 스택(Stack) 메모리에 할당한다.변수에 값 대신 값의 주소를 대입하는 데이터 형식대표적으로 object형이 있다.데이터를 힙(Heap) 메모리에 할당한다. 값 형식의 경우 데이터를 복사하여 저장하기 때문에, 원래 변수의 값을 두 번째 변수에 할당하면 원래 변수의 값 사본이 새로운 변수의 위치에 만들어진다. 따라서 첫 번째 변수를 변경해도 두 번째 변수의 값에는 영향을 주지..
C#) Null과 Void의 차이
·
Programming/C C# C++
Null이란 변수에 아무것도 설정되지 않았다는 것을 의미하는 상수를 말한다.예를 들어int T = Null;이런 식으로 선언을 한다면 T의 값은 아예 정의되어 있지 않다는 것을 의미한다.이 Null이라는 상수는 0과는 또 살짝 다른데, 0을 대입하게 되면 값 자체는 존재하지만 그 값이 0인 것을 의미하고, Null을 대입하면 값조차도 없다는 의미이다. Void의 경우에는 C++에서와 C#에서의 의미가 살짝씩 다르다.C++의 경우 포인터로써 사용할수 있기 때문에 메소드에서 어떤 데이터도 반환하지 않는다는 의미를 갖는데 반해,C#에서는 주로 데이터 형식을 지정해야 하지만, 실제로 반환되는 데이터가 없는 경우 사용한다. 일반적으로 주로 사용하는 void 포인터의 경우 가리키는 대상이 없는 포인터라는 의미를 가..
게임수학) 삼각함수 - 3
·
Programming/기타
덧셈정리이전 포스트에서 단위원에 대해 소개했었다.단위원을 이용하면 내각이 90도를 넘더라도 삼각함수의 수치를 구할수 있었다. 이제 이 그림을 한번 보자. 똑똑한 여러분들은 점 P를 P'의 위치로 옮기게 된다면 내각이 α+β가 되어 좌표가 cos(α+β), sin(α+β)가 된다는 것을 알 수 있을 것이다.그렇다면 이 cos(α+β), sin(α+β)는 어떻게 구할 수 있을까? 덧셈정리라는 공식을 이용하면 다음과 같이 결론이 나오게 된다.  자세한 증명에 대해서는 생략하겠다. 어차피 고등학교 수학 수준이니 나무위키만 찾아도 나올 것이다. 이 덧셈정리를 P'에 적용해보면 원래의 점 P(cosα, sinα)를 β만큼 회전한 점 P'의 위치는 다음과 같이 나오게 된다. 덧셈정리를 응용하면 반각공식, 배각공식 등..
자료구조) 템플릿, 인라인
·
Programming/자료구조 & 알고리즘
템플릿은 함수나 클래스를 찍어내듯이 만들수 있도록 일반화(generic) 시켜주는 도구이다.템플릿과 유사한 함수가 바로 인라인 함수인데, 둘의 차이점은 템플릿 = 그 지점에 복사해서 자료형을 매핑해서 복사해준다.인라인 = 라인 안에 코드를 복사해서 넣어주겠다.이다. 인라인이 성립하는 조건은 두 가지가 있는데,1. 인라인 키워드가 붙어 있을 때.2. 클래스 내부에 선언과 정의를 동시에 할 것.이 조건을 만족하는 예시class A{ inline int add() { return 0; } // 즉시 종료}; 이런 경우이거나,class A{ int add() {}}; 이런 경우를 말한다. 템플릿 또한 마찬가지로, 템플릿 선언은 다음과 같이 할 수 있다.templetevoid Add(T a){ }Add()..
게임수학) 삼각함수 - 2
·
Programming/기타
단위원앞선 포스트에서 삼각함수는 매개변수 θ를 입력받아 출력되는 결과값이 변화하는 함수라고 설명했었다.지금까지는 직각삼각형만을 염두에 두고 개념을 살펴보았지만 실제 삼각형은 θ값이 0~90도 사이에만 있는것은 아니다. 따라서 직각삼각형 뿐만 아니라 직각삼각형을 포함하는 원을 통해 삼각함수를 표현하는 방법에 대해 알아보자.  이 그림은 점 A를 중심으로 하는 반지름의 길이가 1인 단위원 위에 삼각형 ABC를 올려놓은 그림이다.점 A를 중심으로 원 위의 점 B를 이어 선분 AB를 그린다면 당연히 선분 AB는 길이가 1이 될 것이다.그리고 점 B에서 x축 방향에 수직으로 선을 그어 겹치는 부분을 점 C라고 하면 선분 AB와 선분 AC사이의 각, 다시말해 θ를 사인의 정의를 이용하여 구할수 있게 된다. 선분 B..
게임수학) 삼각함수 - 1
·
Programming/기타
삼각형은 컴퓨터 그래픽스의 가장 기본적인 도형중 하나이다.3D그래픽의 가장 작은 단위인 폴리곤만 해도 삼각형으로 이루어져 있다는 것을 알 수 있다. 삼각형은 세 개의 정점으로 이루어진다. 이 세 개의 정점 중 두 개의 정점을 잇는 선분을 변이라고 한다.이 삼각형의 세 변중 두 개의 변이 이루는 각을 내각이라고 한다.또한 삼각형의 세 내각의 합은 항상 180도 이다. 삼각형은 그 모양에 따라 다양한 이름을 가지고 있지만, 우리가 삼각함수에서 다루고자 하는 삼각형은 직각삼각형이다.직각삼각형은 세 개의 정점 부분의 내각 중 하나가 직각을 이루는 삼각형을 말한다. 정점 C부분의 내각이 바로 직각이다.또한 맞은편의 비스듬한 변 h를 빗변이라 하고, 바닥 b를 밑변, 마지막 a변을 높이라고 한다. 삼각함수란 직각삼..