728x90

분류 전체보기 518

10. 벡터(1) - 벡터의 정의와 기본연산

벡터와 스칼라 : 정의 # 스칼라 : 크기만 갖는 값 (ex : 질량, 속력, 에너지, 학생수 등) # 벡터 : 크기와 함께 방향을 갖는 값 (ex : 무게, 속도, 변위, 힘 등) 벡터의 표현 # = 벡터 a (이 블로그에서만 사용할 벡터표기법임) # 다렉은 기본적으로 벡터를 행벡터로 저장하고, OpenGL 등은 열벡터로 저장한다. # 프로그래밍에서는 결국 직교좌표계를 쓴다.# 구면좌표계에서의 표현은 그 벡터가 포함된 평면을 극좌표계라 생각해서 나타내는 방식이라 생각하면 된다. 벡터의 좌표계 변환 # 극좌표계 => 직교좌표계 : 극좌표 벡터가 ||A||@B이면 직교좌표 벡터 ai+bj는 a = ||A||cosB, b는 ||A||sinB # 직교좌표계 => 극좌표계 : 직교좌표 벡터가 ai+bj이면 극좌..

9. 삼각함수(3) - 삼각함수 항등식

정의에서 나오는 항등식 # tanX = sinX/cosX, cotX = cosX/sinX = 1/tanX, cscX = 1/sinX, secX = 1/cosX 주기성에서 나오는 항등식 # sinθ = sin(X+2kπ), cosθ = cos(X+2kπ), tanθ = tan(X+2kπ), secθ = sec(X+2kπ), cscθ = csc(X+2kπ), cotθ = cot(X+2kπ) # θ가 360도(2π)를 넘으면 θ 대신 θ를 360도(2π)로 나눈 나머지(=X)를 넣어도 같은 값이 나온다는 뜻 # 이는 그래프를 보면 쉽게 확인할 수 있다. 대칭성에서 나오는 항등식 //부호 주의 # 음수각 바꾸기 : sin(-X) = -sinX, cos(-X) = cosX, tan(-X) = -tanX, csc(..

8. 삼각함수 (2) - 삼각함수의 그래프

삼각함수의 그래프 삼각함수의 그래프 (기본) y = sin(θ) y = cos(θ) y = tan(θ) y = csc(θ) y = sec(θ) y = cot(θ) y = asin(θ) y = acos(θ) y = acot(θ) 삼각함수의 그래프의 주기 조절 # sin함수로만 그래프를 그렸다. cos도 똑같고, 나머지에는 의미가 없다. y = sin(θ) y = sin(θ/2) y = sin(2θ) 삼각함수의 그래프의 범위 조절 # 예시로 찍어놓은 점의 값이 잘못 나와있으니 주의 y = sin(θ) y = 2*sin(θ) y = 1/2*sin(θ) 삼각함수 그래프의 기준점 변경. y = sin(θ) y = sin(θ+aπ) - b (원점에 있던 기준점이 (aπ,b)로 이동함

7. 삼각함수 (1) - 정의와 기하학적 의미

각도의 표현 : degree vs radian # 주로 n˚(n도)로 표시하는 degree각은 원의 각도를 360도로 나누는 60분법에서 쓰이는 각도이다. # 주로 nπ로 표시하는 라디안각은 각을 호의 길이와 반지름의 비율로 나타내는 호도법에서 쓰이는 각도이다. # 특수각의 변환 degree 0˚ 30˚ 45˚ 60˚ 90˚ 120˚ 135˚ 150˚ 180˚ 270˚ 360˚ radian 0 1/6*π 1/4*π 1/3*π 1/2*π 2/3π 4/3*π 5/6*π π 3/2*π 2π # degree를 radian으로 변환 : n˚ * π/180˚ = nπ # radian을 degree로 변환 : nπ * 180˚/π = n˚ # 그런데 프로그래밍시에는 결국 파이값을 근사치의 상수로 정의해서 쓰기 때문에..

6. 원과 구

원 (Circle) # 원은 평면 위의 한 점으로부터 반지름만큼 떨어진 점들의 집합이다. # 중심이 (a,b)이고 반지름이 r인 원의 방정식은 (x-a)^2+(y-b)^2=r^2이다. # (기초적인) 원을 나타내는 구조체 struct circle { float center[2]; float radius; }; 구 (Sphere) # 구는 공간 위의 한 점으로부터 반지름만큼 떨어진 점들의 집합이다. # 중심이 (a,b,c)이고 반지름이 r인 구의 방정식은 (x-a)^2+(y-b)^2+(z-c)^2=r^2이다. struct sphere { float center[3]; float radius; }; 충돌 체크 # 원이나 구나 충돌체크 원리는 똑같다. # 두 원이나 구의 반지름의 합과 중심 간의 거리를 비교하..

5. 포물선

포물선 # 포물선은 평면 위의 한 점F와 그 점을 지나지 않는 한 직선L까지의 거리가 같은 점들의 집합이다. # 점F를 포물선의 초점, 직선L을 포물선의 준선, 초점을 지나고 준선과 직교하는 직선을 축, 축과 포물선이 만나는 점을 꼭짓점이라고 한다. # 초점과 준선에 대한 내용은 고교수학을 정리할 때 다루기로 하자. # 포물선은 주로 투사체의 운동을 모델링하는데 쓰인다. # 꼭지점이 원점이면 그래프의 형태가 단순하다. # 그래프가 y=ax^2꼴이면 포물선은 y축에 대칭이고, x=ay^2 x축에 대칭이다. # 그래프가 y축에 대칭일때, a>0이면 위쪽으로 열려있고 (꼭지점이 y 최소값), a0이면 오른쪽으로 열려있고 (꼭지점이 x 최소값), a

4. 두 점 사이의 거리와 중점 구하기

피타고라스의 정리 # 피타고라스의 정리는 직각삼각형의 세 변 사이의 길이에 대한 정리이다. # 이를 이용하면 두 점 사이의 거리를 알 수 있다. # 또한 두 점 p1{x1,y1}, p2{x2,y2} 사이의 중점을 M이라 하면 M은 {(x1+x2)/2, (y1+y2)/2}이다. # 만약 두 점이 공간상의 점이라면 중점 M은 {(x1+x2)/2, (y1+y2)/2, (z1+z2)/2}로 구할 수 있다. # 이를 확장하면 공간도형의 중심점을 구하는 식을 만들 수 있다. # 평면 도형에서는 z축을 빼면 된다.

20. 우선순위 큐(Priority Queue) -b. 힙 기반

우선순위큐와 힙 # 힙을 우선순위큐를 염두에 두고 구현했기 때문에 아래의 코드는 힙에서 달라진게 함수명밖에 없다. # 그래서 우선순위큐를 구현하는 것을 힙을 구현하는 것과 동일시하기도 한다. C++로 구현한 힙 기반의 우선순위 큐 #pragma once class PQ_Heap { int* capacity; int iSize; int iCount; int* tRet; private: int ParentIndex(int index); // 지정한 노드의 부모 노드의 인덱스를 반환 int LeftIndex(int index); // 지정한 노드의 왼쪽 노드의 인덱스를 반환 int RightIndex(int index); // 지정한 노드의 오른쪽 노드의 인덱스를 반환 public: bool Add(int d..

20. 우선순위 큐(Priority Queue) -a. 이진탐색트리 기반

우선순위 큐 # 큐가 들어온 시간에 따라 우선순위를 정한 것이고, 스택이 들어온 시간의 역순으로 우선순위를 정해 우선순위가 높은 것을 먼저 내보내는 자료구조라면 우선순위 큐는 데이터에 따라 다르게 정해지는 우선순위에 따라 먼저 내보낼 자료구조를 정하는 자료구조이다. # 우선순위 큐는 들어온 순서에 상관없이 우선순위가 높은 것을 가장 먼저 내보낸다는 것만 지켜지면 되는 추상적인 자료구조이다. # 우선순위 큐는 데이터의 값을 대소비교해서 우선순위를 정할 수도 있고, 우선순위를 따로 표시하는 태그를 가질수도 있다. # 우선순위 큐의 ADT Add : 우선순위 큐에 데이터 삽입하기. Remove : 가장 우선순위가 높은 데이터 삭제하기. (혹은 내보내기) Retrieve : 가장 우선순위가 높은 데이터 확인하기..

19. 이진트리 -f. 힙(Heap)

힙 # 힙이란 부모노드에 저장된 값이 자식노드의 값(혹은 우선순위)보다 항상 큰 (혹은 항상 작은) 완전이진트리이다. # 즉 힙은 다음의 세가지 조건을 만족하는 자료구조이다. 1) 항상 완전이진트리의 형태이다. 2) 부모 노드의 키값이 자식 노드의 각각의 키값보다 항상 크다. (혹은 항상 작다.) 3) 자식 노드의 키값은 자식 노드의 자식 노드보다 항상 크다. (혹은 항상 작다.) 즉 재귀적인 구조를 갖는다. # 힙에서 형제 노드끼리의 값은 비교하지 않는다. # 루트노드의 값이 항상 가장 큰 힙을 최대 힙 (Max Heap)이라 하고, 항상 가장 작은 힙을 최소 힙(Min Heap)이라 한다. # 힙과 이진탐색트리의 삽입, 삭제, 탐색시의 시간 복잡도를 비교해보면 이진탐색트리는 평균적인 경우 삽입 : L..

반응형