목록CS (67)
테크 로그포스 Tech Log Force
방법 1: sort함수 default(오름차순)사용 #include #include #include #include using namespace std; int main() { int N, k; cin >> N >> k; vector vec(N); for (int i = 0; i > vec[i]; } sort(vec.begin(), vec.end()); cout > N >> k; vector vec(N); for (int i = 0; i > vec[i]; } sort(vec.begin(), vec.end(), greater()); cout
sort 함수 사용 ( #include 추가. ) sort(시작주소, 끝+1) 오름차순 정렬 sort는 퀵정렬 기반으로서 시간복잡도는 n log n 내림차순 구현을 원한다면 3번째 파라미터로 greater() 추가해주기. sort(시작주소, 끝주소+1, greater()) #include #include #include using namespace std; int main() { int arr[5]; int sum = 0; for (int i = 0; i > arr[i]; sum += arr[i]; } sort(arr, arr+5); cout
- Scaling 2차원의 축소확대인자 Sx, Sy에 Z좌표 개념 Sz를 추가해준다. Sx * X, Sy * Y를 했던 것처럼 Sz * Z를 해주면 된다. 3D에서의 폴리건메쉬를 구성하는 모든 정점에 변환을 적용해주기만 하면 된다. - Rotation 2차원에서 회전은 '점'을 중심으로 이루어 졌다. 3차원에서는 '축'을 중심으로 한다.(x, y, z축) + 축 중심의 회전에서는 해당 축이 나를 가리킨다고 생각하고 정면으로 바라본다고 상상하면 편하다. 예를 들어 x축 회전은 x축이 내 눈앞에서 나를 가리키고있고, 저 뒤편에 y, z가 반시계 방향으로 회전한다고 생각하면 쉽다. * Z축을 중심으로 회전, Rz(θ) z축을 기준으로 회전하면 x좌표는 당연히 그대로이고 x, y 만 이동할 것이다. 즉 z' =..
1. 변환의 종류 - Scaling(축소, 확대) 2D에서는 축소확대인자(Sx,Sy)사용 예를들어 (x,y)를 축소/확대 할 때 x방향 인자, y방향 인자를 각각 곱해주면 됨. => (Sx*X, Sy*Y) * 다만 그래픽스에서는 행렬의 곱셈으로 나타내므로 (Sx 0 ) (x) = (Sx X) (0 Sy) (y) (Sy Y) - Rotation(회전) (x') =(cosθ - sinθ) (x) (y') (sinθ - cosθ) (y) 로 나타낼 수 있다. 여기서 θ: 회전하고 싶은 각도 *이건 반시계방향의 회전 기준이다. 시계방향으로 회전하려면 -θ를 대입한다. - Translation(이동) (x) + (dx) = (x + dx) (y) (dy) (y+dy) Translation의 경우 Scailing이..