12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816..
1. 점그리기 a) 마우스 왼쪽 드래깅을 이용하여 점을 그림. b) 점의 개수를 화면에 표시함. c) 마우스 오른쪽 드래깅을 이용하여 만든 사각형 내의 점을 지움. 2. 선그리기 a) 마우스 드래깅을 통해 선을 그림 (hint: 연속된 점들을 선으로 연결하면 그 릴 수 있음.) b) 창의 크기를 변화시키면, 그림의 크기가 변화되어 그린 내용의 전체가 항 상 표시된다. (hint: 점의 좌표를 실제 좌표가 아닌, 창 크기에 따른 비율로 표현해 볼 것. 예를 들어 크기 800x600 창의 중점의 좌표는 (400,300) 이 지만 이를 (0.5,0.5)라고 표현하면 창의 크기에 상관없이 표시할 수 있음) 3. 사각형 그리기 및 색 바꾸기 a) 마우스 드래깅을 통해 사각형을 여러 개 그림. b) Color라는 ..
sin θ의 값은 단위원의 원둘레 위의 동점 P의 y좌표로 표시되므로 동점 P가 A에서 출발하여 A, P1, P2,…로 회전하며 움직일 때의 y좌표의 변화를 보면 sin θ의 값의 변화를 알 수 있다. 이것을 사인곡선이라 한다. 마찬가지로 y=cos θ의 값의 변화, 즉 동점 P의 x좌표의 변화를 그래프로 나타내면 코사인 곡선이 된다. 또 y=tan θ의 곡선은 다음과 같다. sin θ, cos θ는 θ가 360°씩 변화할 때마다 같은 값을 되풀이하며, tan θ는 θ가 180°씩 변화할 때마다 같은 값을 되풀이한다. 이 사실은 sin θ, cos θ는 360°(2π)를 주기로 하는 주기함수, tan θ는 180°를 주기로 하는 주기함수임을 의미한다. 또, y=cos θ의 그래프는 y=sin θ의 그래프..
floatcheck_x = 좌표1.x - 좌표2.x;// 좌표 1과 좌표 2의 x 값 만큼의 차이floatcheck_y = 좌표1.y - 좌표2.y;// 좌표 1과 좌표 2의 y 값 만큼의 차이intdistance = sqrt((check_x * check_x) + (check_y * check_y));// 피타고라스의 정리에 의해 C^2 = A^2 + B^2 // 만약 구해진 사잇값이 원의 반지름보다 크면 비충돌, 작으면 충돌.// 두 원 사이의 충돌도 구할 수 있음. ex) 사잇값
점과 직선 사이의 거리를 구하는 식은 다음과 같다. 그 중, 직선을 이루는 두 점의 좌표를 아는 상황에서 점과 직선사이의 거리(충돌처리)를 구하는 방법은 다음과 같다. 직선을 이루는 (x1, y1)과 (x2, y2)를 가지고 있다면 직선의 방정식은 다음과 같다. 따라서, 위의 식을 구하여 a, b, c를 구하고, 점과 직선 사이의 거리를 구하는 방정식을 사용하여 최종적으로 거리를 구한다. 그러나, 만약 직선의 x좌표와 점의 x좌표가 같거나, 직선의 y좌표와 점의 y좌표가 같으면 문제가 생긴다.이와 같이 할 경우, 정확한 거리 계산으로 충돌처리를 할 수 없기 때문에 예외 처리를 해주어야 한다. 직선과 점이 충돌하기 위해서는 점은 직선의 x축, y축의 길이 내에 있어야 한다. 값 5는 원활한 충돌을 위한 보..
위와 같이 코딩하면 사용 가능함. 위 사진과 같이 최근 목록이 유지된 상태로, colorChooser의 기본 정보가 계속 유지되어 키고 끌 수 있다.또한, 확인과 취소 버튼을 눌렀을 때의 Action Listener를 설정할 수 있다. 단, colorChooser를 선언을 static 함수 내부에 했을 때, final로 선언을 해야하는데, 이렇게 하면 기본 정보가 계속 유지될 수 없다. 따라서 위와같이 해야 기본정보가 유지되면서 사용할 수 있음. 위와 같이 사용해도 되지만, 이 방법은 colorChooser의 기본 정보는 유지되지 않고, 확인과 취소버튼을 내 입맛대로 설정할 수 없다.
Proxy Pattern? 초기에 메모리에 올리지 않다가 필요할 때만 메모리에 올림. 메모리 사용 시간을 조금씩 늦쳐서 사용자로 하여금 빠르게 작업할 수 있도록 해주는 역할. 즉, 객체화의 비용을 줄임으로써 초기 시스템의 부하를 줄여주며 조금씩 메모리에 로딩함으로 시스템 자원의 부하를 분산시키는 것을 추구하는 패턴.Virtual Proxy 객체 생성에 많은 비용이 발생하는경우, 실제사용할때 객체가 생성되도록 대리자를 두어 접근하도록 제어한다.Remote Proxy 원격객체에 대한 로컬의 대리자 역활을 한다. Java RMI 를 통하거나 소켓통신을 통하여 원격객체에 데이터를 얻거나 메소드를 호출할 경우 대리자를 통하여 호출이 이루어진다.Protection Proxy 접근제어가 필요한 객체에 대한 접근을 통..
#include /****************** Singleton pattern static 필드는 여러 객체에 의해서 값이 공유된다. 이러한 특징을 이용해서 static을 이용한 패턴이 존재하며 그 대표적인 것이 Singleton 패턴. ******************/class cSingleton{private:static cSingleton*mpSingle; private:cSingleton(){}~cSingleton(){} public:static cSingleton* getSingleton(){if( mpSingle == NULL )mpSingle= new cSingleton(); return mpSingle;} void test(){printf("hi\n");}}; cSingleton* ..