전체 글 56

렌더텍스쳐 좌표계(Render Texture coordinates)

참고 : http://docs.unity3d.com/Manual/SL-PlatformDifferences.html 문제오늘 스크린샷 기능 만들다가 Unity RenderTexture의 이상한 점을 발견했습니다. 바로 그래픽스 sdk에 따라 Coordinate system이 다르다는 사실...참고 URL을 가보시면 이런 글을 확인하실 수 있습니다. 해결방법 12345if (SystemInfo.graphicsDeviceType == UnityEngine.Rendering.GraphicsDeviceType.OpenGL2 || SystemInfo.graphicsDeviceType == UnityEngine.Rendering.GraphicsDeviceType.OpenGLCore || SystemInfo.graph..

Graham scan 알고리즘 (Convex hull 추출)

(원래 기준점은 최하단 왼쪽 점을 고르게 되지만 PIXI는 DirectX처럼 y최소값이 상단에 위치합니다.) Graham scan이란? Graham scan이란 유한개의 점 중 다른 점을 가둘 수 있는 외곽점을 찾는 알고리즘 중 하나입니다. 이 외곽점을 이으면 볼록 껍질(Convex hull)이 됩니다. 시간 복잡도는 입니다. 알고리즘y 값이 가장 작은 점을 찾습니다.(만약 여러 개 존재시 x값이 가장 작은 점을 선택합니다.) 이 때, 이 점을 P0이라 부르겠습니다.P0을 기준으로 다른 모든 점의 각도를 구하여 각도가 작은 순서대로 정렬합니다.P0과 정렬된 점을 2개를 Convex hull에 추가합니다.그 다음 점부터 다음 조건을 반복하여 수행합니다.Convex hull의 마지막 직선에서 현재 점이 왼쪽..

[자료구조] 이진 힙(binary heap) 그리고 힙 정렬(heap sort)

참고 - https://ko.wikipedia.org/wiki/%ED%9E%99_(%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0) 소스코드 사용하실 때, 댓글을 남겨주세요. 정의 힙은 2진 힙(바이너리 힙)이라고도 부르며 최댓값과 최솟값 찾기 연산을 빠르게 하기 위해 고안된 완전이진트리를 기본으로 한 자료구조로써 다음과 같은 힙 속성(property)을 만족합니다. - A가 B의부모노드(parent node)이면 A의 키(key)값과 B의 키 값 사이에는 대소관계가 성립한다. 최대 힙 - 부모노드의 키값이 자식 노드의 키값보다 항상 큰 힙 최소 힙 - 부모노드의 키값이 자식 노드의 키값보다 항상 작은 힙 형제 사이에는 대소관계가 정해지지 않습니다. (Max heap 이미지입니다.) ..

[라즈베리파이, 리눅스] Apache를 이용한 웹서버 세팅

Apache2 설치위 명령어를 입력하시면 apache2를 설치하게 됩니다. 그리고 라즈베리 파이에서는 127.0.0.1, Lan 통신망 내에서는 라즈베리파이의 ip주소(192.168.x.x)를 웹브라우저로 접속하시면 아래의 창이 뜨게 됩니다. 페이지 디렉토리 설정/var/www/html/ 페이지의 기본 경로는 /var/www/html입니다. 페이지를 수정하고 싶으시면 이 경로에 index.html을 수정하던 파일을 추가하던 하시면 됩니다. 하지만 경로를 변경하고 싶다면!/etc/apache2/apache2.conf와 /etc/apache2/sites-available/000-default.conf를 변경해주시면 됩니다. Apache2.conf 변경 해당 파일에서 쭈욱 내려가다보면123456 Options..

하노이 탑(Tower of Hanoi)

Javascript로 구현한 Hanoi tower 하노이 탑은 세개의 기둥과 n개의 크기가 다른 원판이 크기가 큰 순서대로 첫번째 기둥에 꽂혀있습니다. 그리고 다음의 규칙에 맞게 세번째 기둥에 옮기면 되는 퍼즐의 일종이다.첫번째, 한번에 하나의 원판을 옮길 수 있다.두번째, 크기가 작은 원판 위에 큰 원판이 올 수 없다. 원판이 n개일 때, 번 이동하게 됩니다.하노이 탑 설화인도 베나레스에 있는 한 사원에는 세상의 중심을 나타내는 큰 돔이 있고 그 안에 세 개의 다이아몬드 바늘이 동판 위에 세워져 있습니다. 바늘의 높이는 1큐빗이고 굵기는 벌의 몸통만 합니다. 바늘 가운데 하나에는 신이 64개의 순금 원판을 끼워 놓았습니다. 가장 큰 원판이 바닥에 놓여 있고, 나머지 원판들이 점점 작아지며 꼭대기까지 쌓..

병합 정렬 (Merge Sort)

Javascript로 구현한 Merge sort 오늘은 분할 정복 알고리즘의 기초인 MergeSort에 대해 알아보겠습니다.MergeSort는 원소의 개수가 1개가 될때까지 나눈 후, 역순으로 2개의 그룹을 병합 정렬해 가는 알고리즘입니다. 시간 복잡도는 로 원소들의 상태에 영향을 받지 않고 안정적으로 정렬하며 정렬 전의 순서와 정렬 후의 순서가 동일함을 보장하는 stable sort입니다. 하지만 원소 개수만큼의 임시 배열을 만들어 줘야하는 단점이 있습니다. 오늘은 동영상으로 어떻게 병합정렬이 진행되는지 봅시다. 재귀로 작성한 코드 123456789101112MergeSort.prototype.mergeSort = function(first, last){ if(first 대그룹 정렬위에 보이는 동영상처..

선택 정렬 (Select Sort)

Javascript로 구현한 Select sort 주어진 배열 이외에 다른 저장공간을 필요로 하지 않는 제자리 정렬 알고리즘의 하나로 시간 복잡도는 입니다. 어떤 상황에서든 에 비례하는 시간이 걸립니다. 1 5 6 8 7 4 3 9 2 1 5 6 8 7 4 3 9 21 2 6 8 7 4 3 9 5 1 2 6 8 7 4 3 9 51 2 3 8 7 4 6 9 5 1 2 3 8 7 4 6 9 51 2 3 4 7 8 6 9 5 1 2 3 4 7 8 6 9 51 2 3 4 5 8 6 9 7 1 2 3 4 5 8 6 9 71 2 3 4 5 6 8 9 7 1 2 3 4 5 6 8 9 71 2 3 4 5 6 7 9 8 1 2 3 4 5 6 7 9 81 2 3 4 5 6 7 8 9 소스코드12345678910111213..

거품 정렬 (Bubble Sort)

Javascript로 구현한 Bubble sort 거품 정렬이란? 인접한 두 원소를 비교하여 정렬하는 방법입니다. 거품이 수면위로 떠오르는 것 처럼 보여서 붙혀진 이름이라고 합니다. 시간 복잡도는 입니다. 예시 1 5 6 8 7 4 3 9 2 1 5 6 8 7 4 3 9 21 5 6 8 7 4 3 9 21 5 6 8 7 4 3 9 21 5 6 8 7 4 3 9 21 5 6 7 8 4 3 9 2 1 5 6 7 8 4 3 9 21 5 6 7 4 8 3 9 21 5 6 7 4 8 3 9 2 1 5 6 7 4 3 8 9 2 1 5 6 7 4 3 8 9 2 1 5 6 7 4 3 8 9 2 1 5 6 7 4 3 8 2 9 첫번째 이터레이션 종료 1 5 6 7 4 3 8 2 9 1 5 6 7 4 3 8 2 9 1 5..

리눅스 외장하드 마운트하기 (linux mount 명령어)

외장하드 장치 정보 얻기현재 하드디스크들의 파일시스템 정보를 얻어옵니다. sudo blkidSeagate Expansion Drive가 보입니다. 그럼 /dev/sda1가 외장하드 파일입니다.여기서 추가적인 설명을 덧붙이면,/dev 폴더는 장치파일들(device files)을 모아놓은 곳이고, sda1은 두번째 하드디스크라는 소리입니다.(첫번째 하드디스크는 sda, 위의 /dev/mmcblk0p들은 sda의 파티션) 기본적으로 저 파일은 Directory가 아니라서 접근이 불가능합니다. 그리고 이것을 접근할 수 있도록 하는 것이 mount 명령어입니다.이제 다음 명령어를 입력해봅시다.sudo fdisk -l fdisk 명령어는 파티션을 관리하는 명령어입니다. 다른 정보들은 지금 저희에게는 별로 중요하지 ..