2009-10-01 115 views
2

我已经正确设置了鼠标点击处理程序。我有一些图形。有什么方法可以让我填充点的周围部分,直到它碰到多边形边界。类似于Microsoft Paint的“填充”命令。OpenGL/C++ - 如何填充鼠标单击点周围的区域?

谢谢!

+0

您的形状如何定义?三角形?线段?他们是否填充了多边形,或者只是绘制了内部为空的线段?如果它们被填充,它是一个常量的颜色,渐变或纹理? 屏幕截图会很有帮助。 – 2009-10-01 12:48:12

回答

4

考虑使用OpenGL选择功能与glSelectBuffer
请参阅红色书的this chapter进行说明。

0

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

+0

如何检测形状? – Dirk 2009-10-01 02:04:04

1

你在找什么叫做Flood Fill,它是一个像素算法;这意味着你要用着色器查看Frame缓冲区对象或使用(非常慢)glDrawPixels。

2

使用glSelectBuffer的建议很不错。然而,一旦你阅读了这一章,找到“现在你知道”一章,并找到一个名为“使用后台缓冲区选择对象”的小节 - 它简单得多,而且通常完全足够。