일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- c++
- 멋쟁이사자처럼
- Protocol
- dispatchqueue
- ReactorKit
- 위젯킷
- 후기
- 영남대
- TCA
- 컴퓨터그래픽스
- 운영체제
- 백준
- 웹
- SwiftUI
- 리액트
- swift concurrency
- Swift
- 알고리즘
- 대외활동
- cs
- 네트워크
- uikit
- composable architecture
- widget
- widgetkit
- 문법
- 스유
- spritekit
- 멋사
- 스위프트
- Today
- Total
목록분류 전체보기 (198)
맛동산이
illumination model 그래픽스의 최종적인 목표는 현실과 구분할수 없을 정도의 정확한 표현이다. 하지만 이를 위해서는 다음과같은 조건이 존재한다.물체들에 대해서 정확한 표현이 이루어 져야 한다.(질감, 크기, 색감 등등..)빛의 효과를 잘 반영 해야한다. light source우리가 보는 물체는 광원이 아니며, 불투명 하다. 여기에서 우리가 물체를 보기 위해서는 빛이 반사 되어야 하고 이러한 빛의 총합은 아래와 같다.광원에서 오는 빛다른 물체의 반사 되는 빛 광원은 종류가 2개가 있다.point source(점광원) : 묘사 하고자 하는 물체보다 들어오는 빛이 상대적으로 작은 경우distributed light(확산광원) : 묘사 하고자 하는 물체보다 빛의 넓이가 상대적으로 큰 경우(레이저 포..
가시표면 결정 알고리즘은 두 종류가 있다.object-precision algorithm : 객체 단위로 보이는 것인가 아닌가를 확인image-precision algorithm : 픽셀 단위로 보이는것인가 아닌가를 확인 보통 객체단위가 계산이 줄고, 간단한 편이지만 그래픽스에서 가장 중요한것은 사실적인 표현이며 이를 위해서는 픽셀 단위로 표현하는게 더 좋다.하지만 픽셀단위로 확인하면, 데이터 계산량이 많아지는데, 이를 해결하기 위한 방법은 픽셀의 Coherence(일관성)과 Sorting(정렬)이다. 정렬을 통해서 동일한 투영선 상에 존재하면 깊이순서로 , 즉 관측자로부터 먼 픽셀은 비가시픽셀로 선택하는 방법을 사용하고,일관성을 통해서 규칙성을 찾아낸다. 해당알고리즘의 대표적인 방법들두개의 방법의 대표..

3d의 곡면과 곡선을 표현하는 방식은 2개가 있다. 수학적 방정식을 이용하는것: 즉 모든 커브를 일일히 꺾이는 점을 계산해서 이 선을 하나의 다항식으로 만드는 방법사용자가 제공하는 데이터 포인트를 사용하는것(큐빅을 이용하는것): 물체의 형식을 3차 다항식으로, 4개의 점을 사용한다.즉 하나의 곡선을 여러개의 곡선으로 나눠서 잘게 나누는것을 다시 합치는 방식을 의미한다. parametric cubic curves는 결국 3차 다항식을 사용하는데, 물체의 곡선 조각을 3차 곡선으로 조각내서 전체적으로 부드럽게 이어서 하나의 형상을 만드는 방법이다.위의 식이 이를 뜻하는 하나의 블랜디드 방정식을 의미 한다.왜 x,y,z값이 존재하냐하면 우리가 그리고자 하는 곡선은 3차원에 존재하는 곡선이기 때문에 3개의 곡선..

2차원의 물체를 2차원으로 바꿀때는 그냥 옮기면 되지만, 3d, 즉 3차원의 물체를 2차원에 매핑하게 되면 차원의 불일치가 발생한다. 이러한 문제를 해결하기 위해 다양한 투영기법을 사용하게 된다. 3차원은 x, y, z의 3개의 좌표 축이 존재한다.하지만 2차원에서는 z정보가 존재하지 않는데 이를 어떤식으로 처리 하게 되는거이를 처리하는 과정은다음과 같다.projection type의 구분prespective 와 parallel projection 으로 3d물체인가 2d물체인가 구분viewing parameter 구분clippingprojection : window에서 viewport에 투영 투영의 정의: n차원에서 n보다 낮은 차원으로 변환하는 과정을 의미한다. 투영을 위한 도형의 3가지 요소cop(c..

곡면은 3차원의 물체의 움직임이나, 표현을 할때 2차원에서는 엘리어싱이라는 문제가 발생하게 된다. 이를 해결하기 위해서는 부드러운 곡선을 표현할수 있어야 하는데, 이러한 방법에 대해서 설명한다. 부드러운 곡면을 표현하기 위한 방법 polygon mesh parametric surfaces quadric surfaces solid modeling polygon mesh 다양한 polygon을 엮어서 표현하게 된다. 곡면을 만드는 표면을 매쉬형태로 폴리곤을 엮어서 만드는 방법이다. 특징 평평한 표면을 나타내기에 적합함 곡면을 나타내는데 제약이 존재함. 공간효율이 떨어짐(저장해야할 데이터가 많음) 단순한 알고리즘을 통해 구현이 쉽다. 하드웨어의 충분한 지원이 필요 (연산이 많음) 폴리곤을 형성하는 기본 구성요..

Git/github git : 버전 관리를 위한 툴이다. 버전 관리 시스템이다. what is git? 깃은 버전 관리 시스템(vcs)의 일종으로 로컬 컴퓨터에 파일을 서버 컴퓨터에 올려두고, 이를 통해서 로컬에서 파일을 관리하는 것이 아닌, 서버에서 관리하는 것으로 여러 사람이 접근하고 , 코드를 유지, 보수할 수 있게 도와주는 프로그램의 일종이다. git의 3가지 스테이지 git은 3가지 스테이지를 가진다. working directory stage area git repogitory 간단하게 설명하자면, working directory는, 현재 내 컴퓨터에서만 지금 작동하는 내용이다. stage area는 깃을 레파지토리에(온라인 서버) 올리기 전에 commit한 상태를 의미한다. git repog..
https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 정렬 코드는 뭐.. 어쩔수없다! 외우자! 그리고 입력값을 항상 정수라고 고정해버리면, 생각이 굳는다. 숫자라도 문자열로 입력받아, 정수로 변환하거나 정수로 입력받아 문자로 변환할수 있기 때문에 이를 잘 써야한다. 문자를 정수로 바꿀때는 atoi를쓰면된다. #include #include #include #include using namespace std; int compare(char a, char b) { return a > b; } int main() { string n; cin..
https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 아이디어가 안떠올라서 문제 정답을 봤다. 부르스 포스 같은경우에는 그냥, 진짜 처음부터 끝까지 숫자를 1씩 올려가면서 탐색하는 방법이 맞는것 같고, 그러면서 이 문제에서는 10의 자리를 줄여 나가면서 푸는방법이라는게 인상깊었음. temp/=10 이, 자릿수를 줄이는 방법이고 1000% =666 으로 검색함. #include #include #include #include using namespa..
https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 처음 본 아이디어가 맞앗고, 쓰레기같은 문제인것은 확실하다. 그냥 귀찮았음. #include #include #include #include using namespace std; string WB[8] = { "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BWBWBWBW", "WBWBWBWB", "BWBWBWBW" }; stri..