2014-05-20 55 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

但它是一個鼠標點擊,這是我成功實施上繪製鼠標點擊一個圓。但要做三次鼠標點擊或兩次,已證明對我來說很困難。

我也有輸入我想要的顏色的問題。我的例子寫的紅色爲:

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