본문 바로가기

C++

(113)
Learn OpenGL - Model Loading : Assimp link : https://learnopengl.com/Model-Loading/Assimp Assimp 지금까지 모든 장면에서 우리는 다양한 방법으로 우리의 작은 컨테이너 친구를 광범위하게 학대했지만 시간이 지남에 따라 가장 친한 친구조차도 조금 지루할 수 있다. 실용적인 그래픽 응용 프로그램에는 일반적으로 정적 컨테이너보다 훨씬 더 보기 좋고, 복잡하고, 흥미로운 모델이 많이 있다. 그러나 컨테이너 객체와 달리 주택, 차량 또는 사람과 유사한 복잡한 모양의 모든 정점, 법선 및 텍스처 좌표를 실제로 수동으로 정의할 수는 없다. 우리가 원하는 것은 이 모델들을 어플리케이션으로 임포트하는 것이다.(Blender, 3DS Max 또는 Maya와 같은 도구에서 3D아티스트가 신중하게 설계한 모델) 이러한 소..
[백준 2166번] 다각형의 면적 link : https://www.acmicpc.net/problem/2166 다각형의 면적 성공시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB329675148522.611%문제2차원 평면상에 N(3 ≤ N ≤ 10,000)개의 점으로 이루어진 다각형이 있다. 이 다각형의 면적을 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. 다음 N개의 줄에는 다각형을 이루는 순서대로 N개의 점의 x, y좌표가 주어진다. 좌표값은 절대값이 100,000을 넘지 않는 정수이다.출력첫째 줄에 면적을 출력한다. 면적을 출력할 때에는 소수점 아래 둘째 자리에서 반올림하여 첫째 자리까지 출력한다.예제 입력 1 복사4 0 0 0 10 10 10 10 0 예제 출력 1 복사100.0 CCW 알고리즘 분류에..
[백준 11758번] CCW link : https://www.acmicpc.net/problem/11758 CCW 성공시간 제한메모리 제한제출정답맞은 사람정답 비율1 초256 MB23241618137073.616%문제2차원 좌표 평면 위에 있는 점 3개 P1, P2, P3가 주어진다. P1, P2, P3를 순서대로 이은 선분이 어떤 방향을 이루고 있는지 구하는 프로그램을 작성하시오.입력첫째 줄에 P1의 (x1, y1), 둘째 줄에 P2의 (x2, y2), 셋째 줄에 P3의 (x3, y3)가 주어진다. (-10,000 ≤ x1, y1, x2, y2, x3, y3 ≤ 10,000) 모든 좌표는 정수이다. P1, P2, P3의 좌표는 서로 다르다.출력P1, P2, P3를 순서대로 이은 선분이 반시계 방향을 나타내면 1, 시계 방향이면 ..
CCW(CounterClockWise) 알고리즘 1. 개념 CCW는 외적을 이용해서 점 3개의 방향성을 나타내는 알고리즘이다. 즉, 세 점으로 이루어진 삼각형의 면적을 구하는 방법을 이용해서 방향성을 구한다. 우선 점 3개로 나타날 수 있는 경우는 총 3가지이다. 시계 방향, 일직선 방향, 반시계 방향 총 3가지이다. 2. 구현 어떠한 경우인지 알기 위해서 다음과 같은 식을 세운다. 여기서 S의 부호에 따라 경우를 3가지로 파악한다. 1) S > 0 : 반시계 방향 2) S = 0 : 일직선 3) S < 0 : 시계 방향 1234567891011int ccw(int x1, int y1, int x2, int y2, int x3, int y3) { int temp = x1*y2+x2*y3+x3*y1; temp = temp - y1*x2-y2*x3-y3*..
Learn OpenGL - Lighting : Multiple lights link : https://learnopengl.com/Lighting/Multiple-lights Multiple lights 이전 튜토리얼에서 우리는 OpenGL에서 조명에 대해 많은 것을 배웠습니다. 우리는 Phong 음영, 재료, 조명 맵 및 다양한 유형의 조명 캐스터에 대해 배웠다. 이 튜토리얼에서는 6개의 활성 광원으로 완전히 조명된 장면을 만들어 이전에 습득한 모든 지식을 결합합니다. 우리는 방향 광원으로 태양과 같은 빛을 시뮬레이션 하려고 한다. 장면 전체에 흩어져있는 4점의 조명과 손전등을 추가할 것이다. 장면에서 광원을 두 개 이상 사용하려면 조명 계산을 GLSL 함수로 캡슐화해야한다. 그 이유는 각각의 조명 유형이 서로 다른 계산을 필요로 하는 다중 조명을 사용해 조명 계산을 수행하고..
[백준 1912번] 연속합 link : http://link : https://www.acmicpc.net/problem/1912 연속합 성공시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB338869081630026.915%문제n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 숫자를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 숫자는 한 개 이상 선택해야 한다.예를 들어서 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 이라는 수열이 주어졌다고 하자. 여기서 정답은 12+21인 33이 정답이 된다.입력첫째 줄에 정수 n(1≤n≤100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000..
[백준 14728번] 벼락치기 link : https://www.acmicpc.net/problem/14728 벼락치기 성공시간 제한메모리 제한제출정답맞은 사람정답 비율2 초256 MB108238330035.672%문제ChAOS(Chung-ang Algorithm Organization and Study) 회장이 되어 일이 많아진 준석이는 시험기간에도 일 때문에 공부를 하지 못하다가 시험 전 날이 되어버리고 말았다. 다행히도 친절하신 교수님께서 아래와 같은 힌트를 시험 전에 공지해 주셨다. 내용은 아래와 같다.여러 단원을 융합한 문제는 출제하지 않는다.한 단원에 한 문제를 출제한다. 단, 그 단원에 모든 내용을 알고 있어야 풀 수 있는 문제를 낼 것이다.이런 두가지 힌트와 함께 각 단원 별 배점을 적어 놓으셨다. 어떤 단원의 문제를 ..
배낭 알고리즘(Knapsack Algorithm) 1. 개념 무게 W를 감당할 수 있는 배낭이 있을 때 n개 종류의 다른 가치를 가진 물건을 선택해서 넣어 최대의 가치를 구하는 알고리즘이다. Knapsack 문제는 0-1 Knapsack과 Fraction Knapsack이 있다. 0-1 Knapsack은 물건을 자를 수 없고, Fraction Knapsack은 자를 수 있다. 2. 구현 물건을 하나씩 담아보면서 용량을 초과하면 담지 않고, 용량을 초과하지 않는다면 담아보고 가치가 더 크면 그 용량의 가치를 바꿔준다. 점화식은 다음과 같다. D[i][j] = max(D[i-1][j-weight[i]]+price[i], D[i-1][j]);여기서 D[i][j] 는 D[capacity][n], capacity = 배낭의 용량, n = 물건의 개수로 선언한다...