본문 바로가기

코딩

3차원 웹, 빛과 그림자, 캔버스와 함께하는 자바스크립트, 18번째 시간 "빛이 있는 곳에는 어두움도 있다." ​ 천국을 제외한 이 세상은 아직도 빛과 어두움이 공존한다고 생각됩니다 :) 거꾸로 생각하자면 어두움이 있기에 빛이 더욱 밝게 보이기도 하지요. ​ 성서에서도 예수님께서는 빛으로 어두운 세상에 오셨다고 말씀하십니다. 성서 요한복음 1장에서는 아래와 같이 말씀하십니다. 참빛 곧 세상에 와서 각 사람에게 비취는 빛이 있었나니 그가 세상에 계셨으며 세상은 그로 말미암아 지은바 되었으되 세상이 그를 알지 못하였고 자기 땅에 오매 자기 백성이 영접지 아니하였으나 영접하는 자 곧 그 이름을 믿는 자들에게는 하나님의 자녀가 되는 권세를 주셨으니 이는 혈통으로나 육정으로나 사람의 뜻으로 나지 아니하고 오직 하나님께로서 난 자들이니라 성서에 나오는 이 참빛은 바로 예수님이십니다. 이.. 더보기
3차원 웹, 밝은 빛을 보라, 캔버스와 함께하는 자바스크립트, 17번째 시간 지난 시간에는 3차원공간을 마우스로 자유자재로 돌려보는 예제를 살펴보았었는데요. https://itadventure.tistory.com/51 3차원 웹, 마우스로 움직이다, 캔버스와 함께하는 자바스크립트, 16번째 시간 3차원 웹 기술, 캔버스와 자바스크립트 "마우스로 움직이다" 시간입니다 :) 오늘은 우선 예제 영상을 보도록 하실까요? ​ https://youtu.be/2ECIpZvg7Og 허공에 3개의 정육면체가 있으며, 마우스로 클릭하여 드래.. itadventure.tistory.com 박스 뒷면이 너무 새까맣게 보였던 문제에 대해 잠시 거론했었지요 :) 왜 이렇게 까말까요? 그 원인은 포인트 라이트라고 만들어 놓은 3개의 조명이 모두 Z축을 따라 양수의 방향에만 있기 때문입니다. 상자 뒷면을 .. 더보기
3차원 웹, 마우스로 움직이다, 캔버스와 함께하는 자바스크립트, 16번째 시간 3차원 웹 기술, 캔버스와 자바스크립트 "마우스로 움직이다" 시간입니다 :) 오늘은 우선 예제 영상을 보도록 하실까요?​ https://youtu.be/2ECIpZvg7Og 허공에 3개의 정육면체가 있으며, 마우스로 클릭하여 드래그하니 3개의 정육면체가 동시에 돌아갑니다. 마우스 휠을 위로 돌리면, 확대되고 아래로 돌리면 축소하며, 마우스 우클릭하여 드래그할 경우 화면이 상하 좌우로 그대로 이동합니다. ​ 마우스 우클릭이 추가됨으로서 마치 가상공간을 마음껏 들여다 보는 느낌인데요. 꽤 복잡해 보일듯 하지만, 사실 이 부분은 이미 만들어져 있는 멋진 기능이 마련되어 있기 때문에 그냥 가져다가 사용하면 됩니다. ​ 이를 위해서 먼저 스크립트 라이브러리를 추가해 주어야 하는데요. 지난 소스의 여기 아래 부분에.. 더보기
3차원 웹, 이미지를 부르다, 캔버스와 함께하는 자바스크립트, 15번째 시간 지난 시간에는 canvas 에서 3차원 공간의 개념에 대해 다루어 보았었지요? 그리고 예제 하나를 구경해보았었습니다. https://itadventure.tistory.com/45 3차원 공간의 개념, 캔버스와 함께하는 자바스크립트, 14번째 시간 지난 시간에는 HTML 표준 기술 캔버스에서 자바스크립트를 이용하여 3차원 모양의 정육면체를 회전시켜보는 예제를 보았었습니다 :) ​https://blog.naver.com/ephraimdrlee/221570755838 3D세계의 창조, 캔버스와.. itadventure.tistory.com 이번시간에는 물체의 좌표와 카메라 제어에 대해 살펴볼텐데요. 지난 내용을 살펴보셨다면, 3차원 공간을 표현할 기본 틀에 대해 이해하셨을 겁니다. ​ 이제 3차원 공간을 빛.. 더보기
백준 알고리즘 7576 토마토 문제풀이 해설과 소스 토마토를 영국에서는 "신이 주신 열매"라고 부릅니다. 그만큼 피로회복에도 좋고, 특히 토마토의 라이코펜 성분이 알코올 분해시 생성하는 독성물질을 배출한다고 하네요. 영국에서는 해장으로도 토마토를 섭취한다고하니, 가볍게 보였던 토마토가 웬지 오늘 따라 달라보이는군요. 크레이는 술을 먹지 않지만, 술 드시는 분은 다음날 해장국 대신 해장토마토를 권해드리는 바입니다. 그렇다고 술을 과음하시라는 이야기는 절대 아닙니다 :) ​ 오늘 도전해본 백준 알고리즘 문제는 "토마토 익는 날짜" 계산하기 문제입니다. ​ https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 .. 더보기
백준알고리즘 2037 문자 메시지 해설 및 소스 이번엔 좀 재미난 문제입니다 :) 영어로 된 문자자판에서 문자 메시지를 보내는 데 걸리는 시간을 측정하는 소스를 짜는 것인데요. https://www.acmicpc.net/problem/2037 2037번: 문자메시지 문제 오른쪽 그림과 같은 핸드폰 자판이 있다. 이 자판을 이용하여 어떤 영어 메시지를 치려고 할 때, 걸리는 최소 시간을 구하는 프로그램을 작성하시오. 단, 1번은 누를 경우에는 공백이 찍힌다고 하자. 그리고 만약에 AC라는 문자를 치려 한다면 A를 치고 난 후 일정 시간을 기다린 후 C를 치면 된다. 하나의 문자를 입력하려면, 버튼을 눌러야 한다. 버튼을 누르면 버튼에 쓰여 있는 문자가 입력되며, 버튼을 누를 때 마다 다음 문자로 바뀌게 된다. 예를 들 www.acmicpc.net 문제 .. 더보기
백준 알고리즘 10989. 수 정렬하기 3 백준 사이트 최백준씨의 재치가 돋보이는 문제입니다 :) 천만개의 수를 입력받고 정렬해서, 그 수를 순서대로 출력하시오! 라는 문제인데, 메모리 제한이 고작 8M입니다. 과연 풀 수 있을까요? https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 입력되는 수는 10,000 이하의 자연수입니다. 최소로 잡을 수 있는 타입은 int 형이고 int형은 2byte의 메모리 공간을 소모하지요. 10,000,000개의 숫자를 저장하려면 20,000,000 byte인데 그냥 저장만.. 더보기
백준알고리즘 11399. ATM 해설과 소스 백준 알고리즘 11399번을 풀이했는데, 엉뚱한 문제로 꽤나 고생했습니다 ㅎ.. ​ https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 분명 제 PC에서는 랜덤으로 1000건의 데이터를 생성해서 풀이해봐도 이상이 없는데 백준 사이트에서 채점만 하면 틀리는 것이 문제였었는데, 천신만고 끝에 문제원인을 발견하였습니다. ​ 원인은 memcpy 명령어에 있었습니다. memcpy 명령은 대상 주소에 원본주소를 특정길이만큼 복사하는 기능인데요. ​ 만일 long 포인터가 다음과 같이 정의.. 더보기