본문 바로가기

분류 전체보기

(108)
[파이썬을 이용한 Ray Tracing 구현] 2. PyCharm 설치하기 파이썬 에디터를 이번에 Ray Tracer를 구현하며 처음 사용해보았는데 파이참을 사용하여 구현해보았습니다. 먼저 공식 사이트에 들어가 무료인 community 버전을 받았습니다. https://www.jetbrains.com/pycharm/download/ Download PyCharm: Python IDE for Professional Developers by JetBrains Intelligent Python IDE with refactorings, debugger, code completion, on-the-fly code analysis and coding productivity orientation www.jetbrains.com 설치가 완료되면 File>New Project 에서 새로운 프로..
[파이썬을 이용한 Ray Tracing 구현] 1. Ray Tracing이란? 파이썬을 이용한 ray tracing 알고리즘과 구현에 대한 포스팅을 작성해보고자 합니다. 알고리즘에 대한 기본설명부터 파이참 설치, 코드 구현까지 단계적으로 작성할 계획입니다. 먼저 제가 구현한 ray tracing 코드로 만들어 본 sphere와 box로 이루어진 도형입니다. 구현에 사용된 코드는 추후에 github에 올리겠습니다. ray tracing algorithm, 광선 추적법은 광선이 물체의 표면에 반사되어, 다시 돌아오는 경로를 계산하여 나타나는 색깔을 픽셀별로 image plane에 나타내어 주는 알고리즘입니다. 위와 같은 그림을 통해 쉽게 이해할 수 있습니다. camera에서 image plane으로 픽셀별로 view ray를 만들어주고, object와 light source를 이용해 ..
[C, python] 백준 9251번 : LCS 문제 LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. 입력 첫째 줄과 둘째 줄에 두 문자열이 주어진다. 문자열은 알파벳 대문자로만 이루어져 있으며, 최대 1000글자로 이루어져 있다. 출력 첫째 줄에 입력으로 주어진 두 문자열의 LCS의 길이를 출력한다. 풀이 LCS 문제는 두 수열을 그림과 같이 2차원 배열을 만들어서 해결할 수 있습니다. 먼저 두 수열을 0번째 행과 열에 차례로 넣어줍니다. 그 다하음 반복문을 통해 배열의 모든 칸을 채워주어야 합니다. 원래 수열보다 작은 수열끼리의 최장공통 부분열의 길이를 배..
[C, python] 백준 1260번 : DFS와 BFS 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결과를 출력한다. V부터 방문된 점을 순서대로 출력하면 된다. ..