전체 글
-
일차원 운동@ 16. 1 ~ 17. 1/기초수학과 물리 2014. 5. 27. 00:12
등속도 운동의 이동거리 속도 V가 일정할 때, 변위 = 속도*시간(D=v*t) * 프레임 사이의 변위 시간이 1프레임일때 (통상 1/30초) 새위치 = 이전위치 + 속도 * 시간(1/30) 평균속도 임의의 변위와 시간 간격 t가 주어질때 v = x2 - x1 / t (x2 : 이동후 위치, x1 : 이동전 위치) 가속도는 초기시간 t1에 순간속도 v1를 가지고 있는 상태에서 몇 초 후 t2에 순간속도 v2의 속도의 변화율로 정의된다. a(가속도) = v2 - v1 / t2 - t1 * 계산하기전 속도의 단위와 시간의 단위가 일치하는지를 확인해야한다. 예를 들어 속도의 단위가 mi/h인데 초로 나누는것은 안맞다. 초나 시간 둘중에 하나로 단위로 맞춰야함..
-
회전@ 16. 1 ~ 17. 1/기초수학과 물리 2014. 5. 13. 00:10
2차원 회전 회전각이 Θ로 주어질떄 [x'] [ cosΘ -sinΘ 0][x] [y'] = [ sinΘ cosΘ 0][y] [1] [ 0 0 1][1] 회전할 각을 알면 사인과 코사인 값을 구하여 행렬을 곱하기만 하면된다. 2차원 회전은 한개인데, 3차원은 3개이다. 그래서 3개의 회전변환 행렬을 따로따로 정의해야한다. z축 중심 3차원 회전(롤 ROLL) 회전각이 Θ로 주어질떄 [x'] [ cosΘ -sinΘ 0 0][x] [y'] = [ sinΘ cosΘ 0 0][y] [z'] [ 0 0 1 0][z] [1] [ 0 0 0 1][1] x축 중심 3차원 회전(피치 PITCH) 회전각이 Θ로 주어질떄 [x'] [ 1 0 0 0][x] [y'] = [ 0 cosΘ -sinΘ 0][y] [z'] [ 0 si..
-
Tip : 메모리 해제, static 메서드@ 16. 1 ~ 17. 1/C++ 2014. 4. 27. 19:56
동적으로 할당한 메모리는 사용이 끝난 후 반드시 해제를 해주어야 한다. 만약 객체 안에서 동적으로 메모리를 할당했다면 그 메모리에 대한 해제는 객체 소멸자 안에 수행되는 것이 가장 바람직하다. static 메서드를 선언하려면 const를 빼야한다. static메서드는 객체에 묶이지 않기 때문에 객체에 변경을 가하지 않는다라는 시맨틱이 더는 적용될 수 없기 때문이다. static메서드는 연결된 객체가 없으므로 코드 구현부에서 this 포인터를 이용할 수 없다.
-
Tip : 생성자 초기화 리스트와 생성자 바디에서의 초기화 차이@ 16. 1 ~ 17. 1/C++ 2014. 4. 26. 12:27
C++에서 객체를 생성할 때는 생성자를 호출하기 전에 모든 데이터 멤버들이 먼저 생성되어 메모리에 할당된 상태여야 한다. 이때 객체타입인 데이터 멤버는 생성자가 호출되고 기본 타입들은 그 데이터가 할당된 메모리에 남아 있는 임의의 값을 가지게 된다. 생성자 초기화 리스트는 이러한 과정에서의 멤버에 대한 생성자 호출과 기본 타입 데이터의 초깃값을 선택할 수 있게 해준다. *데이터 멤버 클래스가 디폴트 생성자를 제공하지 않는다면 반드시 생성자 초기화 리스트를 이용해서 그 멤버 클래스의 명시적인 생성자를 호출해 주어야 한다. 예를 들어 class A { public: A(double a); }; 있고(디폴트 생성자는 없음 명시적인 double 타입 생성자만 있다) 다음에는 이 클래스를 데이터 멤버로 가진 다른..
-
map 컨테이너@ 16. 1 ~ 17. 1/STL 2014. 4. 19. 10:07
set은 원소로 key하나만을 저장하지만, map은 원소로 key와 value를 저장한다. 중복 저장은 안되고 항상 중복저장은 set이나 map이나 multi를 사용한다 multiset multimap map은 []연산자를 제공하여 key에 해당하는 원소의 value에 쉽게 접근하거나 변경할 수 있다. 기본 정렬은 less 원소는 pair객체로 저장 map 객체이름; 임시 pair객체를 생성하여 저장 객체이름.insert(pair(key, value)); 또는 직접 pair객체를 생성하여 저장 pair 객체이름(key, value); map객체이름.insert(pair 객체이름); 또한 m[key]=value 초 추가 또는 갱신 할수가 있다.