프로그래밍/디자인패턴 스피비 2011. 7. 15. 15:45
Template Method Pattern Class란? 상위 클래스쪽에 템플릿에 해당하는 메서드가 정의 되어 있고, 그 메서드의 정의 안에는 추상메서드가 사용되고있다.(순수가상함수) 상위 클래스만 보면 추상 메서드를 '어떻게 호출하고 있는지' 알 수 있지만, '어떤 처리가 수행되는지'는 알 수 없다. 추상 메서드를 실제로 구현하는 것은 하위메서드 이다. 서로 다른 하위 클래스에서 서로 다른 구현을 실행하면 서로 다른 처리가 실행된다.(다형성 느낌이랄까?) 하위 클래스가 어떤 구현을 하더라도, 처리의 큰 흐름은 상위 클래스에서 결정한대로. 즉, 상위 클래스에서 처리의 뼈대 결정하고, 하위 클래스에서 구체적인 내용을 결정하는 디자인 패턴. AbstractClass( 추상 클래스 ) ConcreteClass..
프로그래밍/디자인패턴 스피비 2011. 7. 13. 18:20
Pointer Implementation 라는 것을 알게되었다. 헤더 파일에 모든 클래스를 넣는것이 아니라, 그 헤더 안에서 의존적인 class 를 .cpp 로 빼므로서 외부에서 그 헤더를 추가할때, 이 내용을 모르게하는 방법. 상당히 충격적인 하나의 패턴이라 정리해봄 ㅎㅎㅎ
프로그래밍/MFC 스피비 2011. 6. 22. 10:09
프로그래밍/물리 & 수학 스피비 2011. 6. 15. 14:12
1.벡터의 정의 벡터는 크기와 방향을 나타내는 수학적 도구 ex) 특정 개체의 이동방향과 속도 등을 표현 2.벡터의 표현방법 벡터는 벡터의 크기와 단위벡터(방향)로 표현 3.벡터 관련 단어 정리 벡터의 크기 : 문자 그대로 특정 방향으로의 벡터의 크기를 말한다. 단위벡터 : 벡터의 크기가 1인 벡터로 그 벡터가 어느 방향인지를 나타낸다. 4.벡터의 연산 연산 대표적으로 덧셈, 뺄셈, 스칼라곱, 내적, 외적이 있다. 1) 덧셈,뺄셈 응용 벡터의 덧셈, 뺄셈 으로 충돌이나 방향전환 등에 대한 것을 처리 할 수 있겠고, 두개의 벡터가 충돌했을 경우 발생하는 벡터나 한 벡터의 값으로 움직일때 다른 벡터의 움직임에 대한 표현의 가능 정도밖에 떠오르지 않는다. 2) 스칼라곱 응용 벡터의 스칼라곱은 특정방향으로의 움..
프로그래밍/물리 & 수학 스피비 2011. 6. 15. 13:49
제목 그대로 그림에서처럼 두 벡터 사이의 각도를 구해보죠. 이건 원운동을 하기 위해 필요한 작업이에요. 사실 이건 고등학교 수학책에도 나올만한 문제이지요. 백터의 내적을 이용하면 되거든요. a점의 x1, y1이고 b점이 x2, y2면 아시다시피 두 백터의 내적은 다음과 같아요. a*b = |a||b|*cos(c) -- 앞의 * 는 내적을 표해요. 표현하기가 마땅치 않군요. 이걸 풀어쓰고 정리하면(루트는 sqrt()로 쓸게요) cos(c) = { x1 * y1 + x2 * y2 } / { sqrt( x1^2 + y1^2 ) * sqrt( x2^2 + y2^2 ) } 이제 cos의 역함수인 acos()함수를 쓰면 c를 구할 수 있어요. 보통은. 그런데 여기서 math.h 에 들어있는 acos의 한계가 나와요..