我想在CImg库中绘制一个Triangle。但是,我不知道如何编写允许我使用三次鼠标点击绘制三角形的代码。 文档中的代码是:
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};
然后我希望用户选择哪种颜色,输入他的选择(假设它是红色),然后将红色定义传递给图像。
任何人都可以提供帮助吗?!
答案 0 :(得分: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]
}
}
}