2009-10-01 114 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的建議很不錯。然而,一旦你閱讀了這一章,找到「現在你知道」一章,並找到一個名爲「使用後臺緩衝區選擇對象」的小節 - 它簡單得多,而且通常完全足夠。