該軟體只需要乙個窗體,該窗體標題為:「彩虹繪製—2017******x」。請依據你的情況填寫你的真實學號。
設定窗體的雙快取為true,避免繪圖是,窗體閃爍。
新增form_paint事件,在該事件中,獲取graphics物件,對應**提示如下。
繪製彩虹的核心方法是graphics物件的fillpie方法,該方法的引數解釋如下:通過繪製7個同心的不同顏色扇形,即可繪製出彩虹圖案。
fillpie(brush brush, rectangle rect, float startangle, float sweepangle);
摘要:填充橢圓所定義的扇形區的內部,該橢圓system.drawing.rectanglef 結構和兩條射線指定。
brush:用什麼顏色的筆刷繪製該扇形。
rect:它表示定義該扇形區所屬的橢圓的邊框。
startangle:起始角度。
sweepangle:沿startangle掃過的角度。
第乙個引數brush,7個顏色的取值分別是:brushes. red, brushes.orange,brushes.yellow,brushes.green,brushes.greenyellow,brushes.blue,brushes.purple。
第三個引數,由於窗體座標系如下所示:通過上述座標系圖,我們可以知道startangle應該設定為180。
第四個引數sweepangle,由於該值隨著時間變化,因此,我們需要在方法外定義乙個float型別的 sweepang變數,在timer中不斷增加或減少該值,然後在fillpie方法中,使用該變數。利用掃過角度的不斷變化,引起所繪製的圖形的變化。注意:timer控制項是否啟用,以及在tick事件中,呼叫this. invalidate ()或者this. refresh(),更新畫面。
為了能將彩虹繪製在窗體中心,在form_load事件中獲取窗體中心點。
在gdi+中螢幕座標系的原點在窗體左上角,根據所獲得窗體中心變數center以及,每個扇形的半徑,結合下圖,可以輕鬆構造出每個扇形應該繪製在的外界矩形rectangle,即fillpie的第二個引數rect。7個扇形的半徑取值分別是:160,140,120,100,80,60,40。
為了保證繪製出的彩虹只有180°,請在timer的tick事件中加入判斷,當sweepang大於180°的時候,重新置為0°
**部分:
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.linq;
using system.text;
using system.threading.tasks;
using system.windows.forms;
namespace rainbow
private
void
form1_paint
(object sender,
painteventargs e)
point center;
private
void
form1_load
(object sender,
eventargs e)
public
static
float a =0;
int i =0;
private
void
timer1_tick
(object sender,
eventargs e)
else
this
.invalidate()
;}}}
執行結果: 桌面應用程式
桌面應用程式 在台式電腦上執行的應用程式稱為桌面應用程式。比如 記事本,word,excel。這種應用程式的特點是 1 缺少共享 2 直接雙擊就可以執行,不需要ie 3 一般以window的視窗形式存在 web應用程式 1 需要ie來執行 2 一般以網頁的形式的存在 3 可以有很多的客戶端來共享。比...
Web應用程式與桌面應用程式的區別
web delphi 伺服器網路 internet access 如果都是用.net做的話,桌面程式需要開發伺服器端和客戶端兩塊程式,電腦都要安裝.net framework,b s形式的話,只用做伺服器端。但兩者桌面應用可能軟體介面更好控制一些,web形式客戶端的螢幕就不太好空,一般滿足1024 ...
Web應用程式與桌面應用程式的區別
web delphi 伺服器網路 internet access 如果都是用.net做的話,桌面程式需要開發伺服器端和客戶端兩塊程式,電腦都要安裝.net framework,b s形式的話,只用做伺服器端。但兩者桌面應用可能軟體介面更好控制一些,web形式客戶端的螢幕就不太好空,一般滿足1024 ...