본문 바로가기

Programming

[C/C++]LNK2005 작업 환경은 visual studio 2010 에서 작업 했으며, 언어는 C/C++ 입니다. "중복된 선언이 있습니다…" 사실 이러한 부분은 여러 개의 head 파일들이 서로가 서로를 참조하게 되는 것이 가장 큰 원인으로 알고 있었고, 코딩을 하면서는 중복 선언이 되지 않도록 하는대에 주안점을 두고 작업 했음에도 불구하고 오류! ㅠㅠㅠㅠㅠ(왠지 눙물이 나네…) 이 오류를 접한 프로젝트의 구성은 아래와 같았어요. 제가 직접 만든 행렬 클래스 헤더파일이 별도로 선언해 놓은 임시 행렬클래스 변수를 가지고, main에서는 그 헤더파일을 인클루드… 코드는 아래와 같습니다. // MAT.h // .. 생략 .. class MAT { // 생략.. }; namespace VAL_MAT { // MAT와 관련된 기본 .. 더보기
OpenGL primitives_2 저번 포스팅에 이은 글이므로 설명 또한 다소 이어질 수 있으므로 참고 하세요 OpenGL primitives_1 Drawing Polygons in 3D(3차원상에 폴리곤 그리기) 앞서 우리는 기본적으로 점과 선을 그리는 방법에 대해서 알아 봤습니다. 하지만 폴리곤으로 만드는 것이 더욱 강력한 3차원 세계를 만들 수 있다는 것에는 의심의 여지가 없습니다. 폴리곤이 뭔지 짚고 넘어가야 겠죠? 폴리곤은 다각형을 의미합니다. "면"이 존재해야 하는 것이죠. 보통은 삼각형이지만 경우에 따라선 사각형과 오각형 또한 나올 수 있지만 이 역시 삼각형으로 부터 만드는게 가능하죠. 아래 처럼~ glBegin(..)의 인자 중에서 이러한 폴리곤을 만드는 인자들이 있었죠. GL_TRIANGLES// Single triang.. 더보기
OpenGL primitives_1 일단, Primitives 가 뭔지 알아야 겠죠? :-D 사전적인 의미는 찾아보시면 아시겠지만, (물건 따위가 덜 발달하고 불편하여) 원시적인 (참조 : 네이버 사전ㅋ) 이란 의미를 가지고 있어요. 서적에서 얘기하는 예시는 "덜 사회적인 사람(an unsophisticated person)" (음???????) 이라고 하는데... 뭔 소리인지는 잘 모르겠어요 :-D(외쿸문화란...ㅋ) 간단히 얘기하면 가장 근본이 되는 것들 입니다. 우리는 OpenGL을 이용해서 그럴싸한 뭔가를 그리려고 하는 것이잖아요? 그린다의 가장 기본은 뭘까요? 점 이겠죠? :-D 그 점이 이어진 것이 선 이겠고, 그 선들이 이어진 게 면, 그 면들이 이어지면 부피가 있는 물체가 될 것이고~ 가장 기본적인 것들을 그려주는 겁니다. .. 더보기
OpenGL states 이제 아주 기본적인 이론들을 끝내고 본격적으로 OpenGL을 다루는 시간이 왔네요.(서적에서는 "To begin to unlock the power of Open GL"이라고 언급 하는 군요 :-D) OpenGL이라 함은 상태기계(state machine)이라고도 불리는데, 다양한 상태를 이용해서 다른 모습을 볼 수 있습니다. 그럼, 어떠한 "상태" 라는 것만 존재한다면 그걸 이용 할 수 있어야 겠죠? 현재 어떠한 상태인지 가져오는 것과 상태를 다시 설정 해주는 것이 필요 할 것 입니다. 가져오는 것은 게터 함수(getter function)으로 할 수 있습니다. 함수의 사용은 아래와 같습니다. glGet뒤에 가져올 상태의 타입을 적어주고 두 번째 인자에 해당 타입의 포인터를 가져 오게 됩니다. 첫 번째.. 더보기
임의의 벡터간 각도 구하기 벡터간 내적을 이용해서 각도를 구하는 프로그램을 구현해 봤습니다. 일단 내적공식은 저번의 포스팅에서 했다 시피 아래와 같습니다. cos을 기준으로 정리하면 아래와 같습니다. 하지만, 일단 벡터는 무조건 단위 행렬로 만들어야 계산이 깔끔해 지기 때문에, 단위행렬의 전제 하에 벡터의 크기는 1. 따라서 아래와 같은 공식을 유도 할 수 있습니다. 이 때, Θ를 구하기 위해서는 arc cosine을 이용하면 됩니다. 나오게 된 값을 arc cosine을 이용해서 풀게 되면 Θ를 구할 수 있는 공식인데요, 그렇게 해서 나온 공식 입니다. 공식은 모두 다 준비 되었습니다. 클래스를 만들어야죠? 벡터는 1x4짜리 크기이며, 단위행렬 만들기와 크기 구하기, 내적 그리고 다른 벡터와 각도 구하기를 할 수 있습니다. VE.. 더보기