OpenGL / C++ - 如何在鼠标点击时填充一个点周围的区域?

Posted

技术标签:

【中文标题】OpenGL / C++ - 如何在鼠标点击时填充一个点周围的区域?【英文标题】:OpenGL / C++ - How do you fill an area surrounding a point on a mouse click? 【发布时间】:2009-10-01 01:51:18 【问题描述】:

我已经正确设置了 mouseclick 处理程序。我有一些形状的图画。我有什么办法可以填充一个点的周围部分,直到它碰到多边形边界。类似于 Microsoft Paint 的“填充”命令。

谢谢!

【问题讨论】:

您的形状是如何定义的?三角形?线段?它们是填充多边形,还是仅绘制内部空的线段?如果它们被填充,它是恒定的颜色、渐变还是纹理?截图会很有帮助。 【参考方案1】:

考虑将 OpenGL 选择功能与 glSelectBuffer 结合使用。 说明参考红皮书this chapter。

【讨论】:

【参考方案2】:

使用 glSelectBuffer 的建议非常好。但是,一旦您阅读了该章节,请查找“现在您知道了”章节,并查找名为“使用后台缓冲区的对象选择”的部分——它要简单得多,而且通常完全足够。

【讨论】:

【参考方案3】:

您要查找的内容称为Flood Fill,它是逐像素算法;这意味着您将要查看带有着色器的帧缓冲区对象或使用(非常慢的)glDrawPixels。

【讨论】:

【参考方案4】:

使用opengl?我严重怀疑...你能做的就是检测鼠标点击选择的形状并用不同的颜色绘制这个形状。

【讨论】:

以上是关于OpenGL / C++ - 如何在鼠标点击时填充一个点周围的区域?的主要内容,如果未能解决你的问题,请参考以下文章

Opengl 鼠标点击矩形

如何在 C++/OpenGL 中获取当前鼠标位置?

OpenGL - 在鼠标点击时绘制多边形,多边形总是在右边

Qt OpenGL-如何根据鼠标点击获取对象

如何在 C++ 中使用 sdl、opengl 移动相机时修复奇怪的相机旋转

单击窗口 x 轴的末端时,通过鼠标单击在 OpenGL 中创建的光线不正确?