?? chap22.htm
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<title>簡易繪圖范例01</title>
<link rel="stylesheet" href="../../../include/style.css">
</head>
<body>
<p> <small><a href="../../../index.htm">首頁</a> >> <a href="../../program.htm">程序設計</a>
>> <a href="../cbuilder.htm">C++ Builder</a> >> </small><font SIZE="2">圖形程式設計基本觀念·<font color="#000000">簡易繪圖范例01</font></font></p>
<font SIZE="2">
<p align="left"><!--webbot bot="ImageMap" rectangle=" (40,1) (71, 23) chap23.htm" rectangle=" (4,1) (36, 23) chap21.htm" src="../ch1/NextBack.gif" width="72" height="24" alt="NextBack.gif (743字節)" border="0" startspan --><MAP NAME="FrontPageMap"><AREA SHAPE="rect" COORDS="40,1,71,23" HREF="chap23.htm" alt="下一頁" title="下一頁"><AREA SHAPE="rect" COORDS="4,1,36,23" HREF="chap21.htm" alt="上一頁" title="上一頁"></MAP><a href="../../../_vti_bin/shtml.exe/program/C++/ch2/chap22.htm/map"><img ismap usemap="#FrontPageMap" border="0" height="24" alt="NextBack.gif (743字節)" src="../ch1/NextBack.gif" width="72"></a><!--webbot bot="ImageMap" endspan i-checksum="22956" --></p>
<p><font color="#FF0000">·簡易繪圖范例01</font></p>
</font>
<p><font SIZE="2">范例一的輸出</font></p>
<p><font SIZE="2"><img SRC="Image1.gif" WIDTH="458" HEIGHT="344">圖01</font></p>
<font SIZE="2">
<p>這個程式很簡單,只是重復地畫出幾個圖形,如此就組成了一個美麗且和諧的圖形。我們來看看其關鍵性的繪圖部份:</p>
<p>其中Ellipse為一個畫橢圓的繪圖函式。</p>
</font><font SIZE="1">
<p>void __fastcall Ellipse(int X1, int Y1, int X2, int Y2);</p>
<p>函式說明:</p>
<p>利用Ellipse可在Canvas上畫出圓形或橢圓形.
其環繞矩形的左上角為座標為 (X1, Y1) 而右下角坐標為 (X2, Y2).
若是該矩形為正方形,則所繪之圖形為圓形。.</p>
<p>當此橢圓形繪制時,使用Pen的值畫出其外框,而使用Brush值填滿其內部。</p>
<p>注: 在Windows 95下X1+X2,Y1+Y2及X1+X2+Y1+Y2的值皆不可超過 32768。</p>
</font><font SIZE="2">
<p>void __fastcall TForm1::FormPaint(TObject *Sender)</p>
<p>{</p>
<p> double AL,x1,y1,x2,y2;</p>
<p> int L=120;</p>
<p> for (int i=0; i<48; i++)</p>
<p> {</p>
<p> AL = i*M_PI/24;</p>
<p> x1 = L*cos(AL);</p>
<p> y1 = L*sin(AL);</p>
<p> x2 = x1+320;</p>
<p> y2 = -y1+240;</p>
<p> Canvas->Ellipse(x2-90,y2-90,x2+90,y2+90);</p>
<p> }</p>
<p>}</p>
<p>怎麼樣?簡單吧!這個程式只是做一些簡單的數學運算,然後以視窗中心為準,畫出48個圖形而已。我在這個程式中沒有用到任何的軟體元件,只是以表格
(Form)做為顯示的基臺,由於表格中亦包含了Canvas性質,因此表示我們可以在上繪圖。同時為了繪圖的方便,我將表格的背景色調為黑色,并將適當地調整畫筆的顏色及視窗的大小:</p>
<p>void __fastcall TForm1::FormCreate(TObject *Sender)</p>
<p>{</p>
<p> Width = 640;</p>
<p> Height = 480;</p>
<p> Canvas->Pen->Color = clTeal;</p>
<p> Canvas->Brush->Style = bsClear;</p>
<p>}</p>
<p>基本上以上的調整都可以用二種方式來達成,一種是在屬性編輯器,另一種則是在程式執行時動態改變,上面的程式碼就是在改變視窗的寬度及高度,并設定畫筆及筆刷,我將畫筆顏色設為clTeal并將筆刷型式設為bsClear,以避免填色的動作,畫筆及筆刷的動作在後續單元中會詳細介紹,在此你只要大略了解其動作即可。</p>
<p>程式輸出時,其背景為黑色是因為我在屬性編輯器設定了黑色的背景值</p>
<p align="right"><!--webbot bot="ImageMap" rectangle=" (40,1) (71, 23) chap23.htm" rectangle=" (0,0) (32, 22) chap21.htm" src="../ch1/NextBack.gif" width="72" height="24" alt="NextBack.gif (743字節)" border="0" startspan --><MAP NAME="FrontPageMap1"><AREA SHAPE="rect" COORDS="40,1,71,23" HREF="chap23.htm" alt="下一頁" title="下一頁"><AREA SHAPE="rect" COORDS="0,0,32,22" HREF="chap21.htm" alt="上一頁" title="上一頁"></MAP><a href="../../../_vti_bin/shtml.exe/program/C++/ch2/chap22.htm/map1"><img ismap usemap="#FrontPageMap1" border="0" height="24" alt="NextBack.gif (743字節)" src="../ch1/NextBack.gif" width="72"></a><!--webbot bot="ImageMap" endspan i-checksum="41324" --></p>
<p><small><a href="../../../index.htm">首頁</a> >> <a href="../../program.htm">程序設計</a>
>> <a href="../cbuilder.htm">C++ Builder</a> >> </small>圖形程式設計基本觀念·<font color="#000000">簡易繪圖范例01</font></p>
</font>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -