2014-05-20 3 views
1

CImg 라이브러리에서 삼각형을 그려야합니다. 그러나 세 번의 마우스 클릭을 사용하여 삼각형을 그릴 수있는 코드를 작성하는 방법을 모르겠습니다.C++ 다중 마우스 클릭을 기다리는 방법

while (!main_disp.is_closed() && !draw_disp.is_closed()) 
{ 
main_disp.wait(); 
if (main_disp.button() && main_disp.mouse_y()>=0) 

http://cimg.sourceforge.net/reference/group__cimg__tutorial.html

하지만 내가 마우스 클릭에 원을 그리 성공적으로 구현 한 마우스 클릭입니다 : 문서의 코드는 이것이다. 그러나 3 번의 마우스 클릭 또는 2 번을 수행하는 것은 나에게 어렵다고 판명되었습니다.

내가 원하는 색상을 입력하는 데 문제가 있습니다.

const unsigned char red[] = {250, 0, 0}; 

가 그럼 난 사용자가 자신의 선택을 입력하는 색상을 선택합니다 (빨간색의 가정) 다음 이미지에 빨간색의 정의를 전달하려는 : 나는 예를 들어 빨간색 썼다.

누구나 도움이 될 수 있습니다.!

+1

두 번째 질문은 귀하의 첫 번째 질문과 완전히 다릅니다. 다른 게시물에서 요청하십시오. –

답변

3

마우스 버튼을 클릭했을 때 감지하는 방법을 알고 있다면 나중에 해당 정보를 저장할 수 있습니다. 예를 들어 이전 마우스 클릭을 deque에 저장할 수 있습니다.

struct point 
{ 
    int x,y; 
}; 

... 

std::deque<point> clicks; 

while (!main_disp.is_closed() && !draw_disp.is_closed()) 
{ 
    main_disp.wait(); 
    if (main_disp.button()) 
    { 
     clicks.push_front({mouse_disp.mouse_x(), mouse_disp.mouse_y()}); 

     if (clicks.size() >= 3) 
     { 
      // draw a triangle using clicks[0], clicks[1] and clicks[2] 
     }   
    } 
} 
+0

정말 고마워요. 이것은 나를 크게 도왔습니다 :). – Mustafa

관련 문제