2014-01-15 65 views
2

我使用FLTK創建一個GUI,我要畫到屏幕上的一些多邊形(形狀)。FLTK充滿多邊形

從他們fl_complex_polygon的文檔:

Start and end drawing a convex filled polygon. 

的問題?多邊形未填充,但只顯示筆畫。我怎樣才能使多邊形填充形狀?

我的代碼如下所示:

fl_color(FL_RED); 
fl_begin_complex_polygon(); 
fl_line(mX,mY, x, y); 
.... 
fl_line(mX,mY, x, y); 
fl_end_complex_polygon(); 

其他相關的問題:我如何重繪FL_BOX?我是否必須在其上繪製一個空白(背景色)的矩形,或者是否有一些FL_BOX::clear()函數?

回答

2

回覆:填充多邊形。多邊形由頂點組成:不是線。它不知道線條。使用fl_vertex而不是fl_line。

回覆:fl_box 有兩個fl_boxes,這取決於案件。

fl_box設定從Fl_Box.H盒式 Fl_Box繪製框。重繪代碼會在損壞時自動重繪。說這個小部件叫做box。調用box-> damage(FL_USER1)強制重繪。

對於更多的花樣,看看http://seriss.com/people/erco/fltk/

+0

謝謝,多邊形的作品。如果我使用this-> damage(),它只會繪製我的函數中的內容,而不是標籤或其他默認框圖。例如,也不可能觸發Fl_Box重畫。如果我在損壞之前或之後添加'Fl_Box :: draw()',那麼圖紙將堆疊。 – Cristy

+0

傷害只是一個標誌。它只會在重繪循環中重繪。這是爲了停止閃爍。如果你強制平局,那麼你可能會有一些閃爍。你想重繪的標籤是否屬於Fl_Box?如果他們沒有,那麼你需要在標籤的父母上設置傷害。 – cup

+0

好的,這是我做的:我使用了'Fl_Box :: draw()'。問題在於盒子的樣式背景是空的,所以下次繪製時,沒有任何東西可以覆蓋舊的圖紙寬度。解決的辦法是設置盒子樣式。 http://www.fltk.org/doc-1.1/common.html#boxtypes – Cristy