프로그래밍 55

사원수(쿼터니온, Quaternion)에 대하여

1.1 복소평면 복소수를 기하학적으로 표현하기 위해 실수축과 허수축을 기반으로 한 평면. 한 점을 나타날 때, (x, y) = x + y * i로 나타낸다. (x, y는 실수) 1.2 복소평면(2차원)에서의 회전 \(x = r × cos(a)\) \(y = r × sin(a)\) \(A = x + i × y = r × \bigl(cos(a) + i × sin(a)\bigr)\) // 삼각함수 곱셈법칙 \(z = r × cos(a+b) = r × \bigl(cos(a) × cos(b) - sin(a) × sin(b)\bigr)\) // 삼각함수 곱셈법칙 \(w = r × sin(a+b) = r × \bigl(sin(a) × cos(b) + cos(a) × sin(b)\bigr)\) \(B = r × (z ..

쿼드트리(Quad tree)

자료구조 카테고리를 만들까 하다가 알고리즘 카테고리에 작성합니다. 쿼드트리란? 트리 자료구조중 하나로 부모 노드 아래에 자식 노드를 4개(Quad)씩 가지고 있는 트리입니다. 이미지 용량, 충돌, 컬링 등 다양한 곳에서 최적화 기법으로 사용되고 있습니다. 알고리즘 오늘은 쿼드트리를 이용해 흑백 이미지를 간단하게 압축해보도록 하겠습니다.검은색을 0, 흰색을 1로 한다면 왼쪽 이미지는 오른쪽과 같이 나타낼 수 있습니다. 0000111100001111000000110000001111110001111111111111111111111110 해당 이미지를 쿼드트리를 이용해 압축을 하면 결과는 이렇게 나옵니다.(0(1101)1((0011)(0111)1(1110)) 그림으로 보신다면 왼쪽과 같은 형태로 압축하는 것입니..

Ubuntu crontab 사용법

참조 : https://help.ubuntu.com/community/CronHowto Crontab은 특정 시간에 설정해놓은 커맨드를 실행하는 서비스입니다. 특정 시간에 실행할 커맨드를 등록하는 Crontab 파일을 수정할 수 있게 해주는 명령어입니다. 첫 실행 시, 파일 에디터를 선택합니다. 저장하고 마치면 자동으로 Crontab에 install해줍니다.crontab -e 특정 시간에 root권한으로 실행할 커맨드를 등록하는 Crontab 파일을 수정할 수 있게 해주는 명령어입니다. 위와는 다른 파일이 열립니다. 마찬가지로 저장하고 마치면 자동으로 Crontab에 install해줍니다.sudo crontab -e 위에서 등록한 Crontab파일을 제거하는 명령어입니다.crontab -rsudo cro..

도형 충돌, 분할 축 정리 (Separating Axis Theorem)

참고 : www.dyn4j.org/2010/01/sat/ 분할 축 정리(Separating Axis Theorem)란? 분할축 정리(Separating Axis Theorem, 이하 SAT)란 "두 물체를 투영한 구간이 겹치지 않는 축이 하나라도 존재한다면 두 물체는 교차하지 않은 상태이다."라는 명제에 관한 정리입니다. 그리고 이것을 통해 충돌을 검출해내는 알고리즘을 만들것입니다. 충돌 유무, 충돌 위치, 충돌 량을 검출하며 2D물리 시뮬레이션에서 일반적으로 사용하게 됩니다. (http://chessire.tistory.com/entry/%EC%84%A0%EB%B6%84%EA%B3%BC-%EC%84%A0%EB%B6%84%EC%9D%98-%EC%B6%A9%EB%8F%8C-%EC%A0%95%EB%A6%AC..

[라즈베리파이, 리눅스] Transmission으로 토렌트머신 세팅하기

참고 : http://www.techjawab.com/2014/08/how-to-install-transmission-on.html Transmission 설치sudo apt-get update sudo apt-get install transmission-daemon 디렉토리 생성mkdir /your/torrent/directory/inprogress mkdir /your/torrent/directory/complete 원하는 디렉토리에 inprogress(다운로드 중) 폴더와 complete(다운로드 완료) 폴더를 생성합니다. 권한sudo usermod -a -G pi debian-transmission Transmission은 debian-transmission이라는 유저로써 실행됩니다. 보안 문제 ..

Unity에서 스크린샷

Save123456789101112131415161718192021222324252627282930313233343536373839404142434445464748// (1) 스크린샷용 카메라를 준비합니다.screenShotCamera.gameObject.SetActive(true); // (2) 화면 크기를 지정합니다.Vector2 screenSize = new Vector2(Screen.width, Screen.height); // (3) 저장할 이미지의 크기를 지정합니다.(화면 크기 그대로 저장을 원하면 screenSize로 대체하시면 됩니다.)Vector2 imageSize = new Vector2( cat.pictureSize.x / cameraSize.x * screenSize.x, cat.p..