Teechart圖表教程:三維畫板、工具和TeeOpenGL

   TeeChart for .NET中文版讓您在使用和學習上沒有任何語言障礙,至少可以節省30%的開發時間。TeeChart for .NET中文版具有易上手,使用方便,穩定性好,性價比高,價格優惠等優勢,並且針對Web應用提供無限制服務器分發授權方式,非常有利於產品集成。


Teechart組件的應用實例

    Steema爲了充分發揮TeeChart頁圖表組件的功能,將圖表編輯器的選項卡進行了拆分,構成獨立的可視或非可視組件,由程序設計員根據用戶的功能要求進行重新組合,以滿足用戶需要。

三維畫板、工具和TeeOpenGL

演示:Daw3D、 TeeCommander和TeeOpenGL組件。

功能:Draw3D是能夠繪製具有3D功能的畫板,可以在其上進行2D和3D幾何圖形、線條、文字的繪製以及位圖顯示與背景設置等功能。在TeeCommander組件的支持下,可以實現打印、拷貝、導出、放大、旋轉等操作,與TeeOpnGL組件結合可實現OpenGL三維圖形的繪製。

設計:

  1. Draw3D組件的三維畫布 Canvas: TVanvas3D,提供了豐富的2D、3D幾何圖形、線段、文字的圖形繪製,下列代碼完成有關圖形的繪製:

    var
        MyBit:TBitmap;
        begin
        with Draw3D1 do
        begin
        MyBit:=tbITMAP.Create;
        MyBit.LoadFromFile('Background. bmp);
        Canvas.Draw(7, 7, Mybit);
        Canvas.Pen.Style:= psDashDot;
        if CheckBox3.Checked then                                      //根據檢查框狀態確定是否繪製座標軸
        begin
            Canvas.MoveTo3D(251,10,0);
            Canvas.lineTo3D(251,273,0);                              //縱座標
            Canvas.MoveTo3D(10, 141, -100);
            Canvas.LineTo3D(493, 141, 100);                       //橫座標(左下,右上)
            Canvas.MoveTo3D(10, 141, 100);
            Canvas.LineTo3D(493, 141, -100);                      //橫座標(左上、右下)
        end;
        Canvas.Pen.Color:=clGreen;
        Canvas.Brush.Color:=RGB(125, 128,128);
        Canvas.Pie3D(100,200,60,15,30,100,15,90,CheckBox1.Checked,true);   //圓餅
        Canvas.Brush.Color:=RGB(125, 120, 128);
        Canvas.Pyramid(true,300,50,400, 100,0,50,CheckBox1.Checked);
        Canvas.Brush.Color:=RGB(255,0,0);
        Canvas.Sphere(Draw3D1.ChartXCenter+150,Draw3D1.ChartYcenter+80,0, 50);
        //球體
        Canvas.Cube(250, 270, 40,90,0,10,CheckBox1.Checked);                      //立方體
        Canvas.Brush.Color:=RGB(0,128,0);
        Canvas. Cylinder(true,150,80,190,160,10,70,CheckBox1.Checked); //圓柱體
        Canvas.Font.Color:=clRed;
        Canvas.Font.Name:='仿宋_GB2312';
        Canvas.BackMode:=cbmTransparent;
        Canvas.Font.Size:=16;
        Canvas.TextOut3D(10,250,45,'這是一個Draw3D組件功能演示');
        Canvas.RotateLabe13D(20,200,10,'旋轉文本',90.0);
  2. Draw3D組件的3D幾何圖形繪製函數中有一個參數DarkSides:Boolean,是用來控制繪製圖形時是否帶陰影以增強立體感,所以本程序在該函數的這個參數中使用了Check Box 1.Checked,由CheckBox檢查框是否選中表示是否繪製陰影。例如(繪製錐體):

    CheCanvas.Pyramid (true, 300, 50, 400, 100, 0, 50, CheckBox1.Checked);

    因此,當單擊ChckBox1時,3D畫板的圖形外觀就會發生變化。

  3. 背景漸進和座標軸檢查框用於控制是否在背景中使用漸進色和繪製座標軸。控制座標軸的繪製代碼是放在Draw3D的OnPaint事件中。

  4. 實現 OpenGL功能,只需在程序設計階段將TeeOpenGL組件的 TeePanel設爲Draw3D1和 Active屬性設爲true,或者在主窗體的 OnCreate事件中加入以下代碼即可:

    TeeOpenGL1.TeePanel=Draw3D1;
    TeeOpenGL1.Active:=true;
  5. 如果窗口有圖表組件Chart,將TeeOpenGL1.TeePanel設爲 Chart,這時打開的圖表編輯器就增加了OpenGL選項卡,如下圖所示。

當圖表組件Chart與TeeOpenGL組合應用時的編輯器外觀

設置:

組件名稱屬性名設定值備註
TChartNameChart1用圖表編輯器設定
TDraw3DNameTDraw3D1一般不需要特殊設置
TTeeCommanderNameTeeCommander1命令工具組件
PanelChart1OpenGL組件名稱
TTeeOpenGL

TeePanel

TeeOpenGL1
NameDraw3D1
OpenGL的畫板
Activetrue激活TeeOpenGL1組件
TCheckBoxNameCheckBox1陰影控制
Checkedtrue
Caption陰影
TCheckBoxNameCheckBox2背景漸進色
Checkedtrue
Caption背景漸進
TCheckBoxNameCheckBox3座標軸控制
Checkedtrue
Caption座標軸
TCheckBoxNameCheckBox4OpenGL功能控制
Checkedfalse
CaptionOpenGL

技巧:

  1. (OpenGL( Open Graphic Library)即開放圖形庫,是一個3D的計算機圖形和模型庫,是由SGI公司於1992年開發的、獨立於操作系統和硬件環境的、具有強大的圖形功能和良好的跨平臺移植能力的一個圖形標準,它已被廣泛應用於可視化、實體造型、 CADICAM和模仿真等領域。利用Draw3D和 TeeOpenGL的配合就可實現 OpenGL的功能。不過 OpenGL本身是一個計算機應用領域,真正要繪製出高質量的圖形還需查閱有關 OpenGL的專門書籍,這裏不再贅述。

  2. 從本例看出工具組件 Tee Commander可以對 OpenGl產生的圖形進行各種操作。

界面:程序運行後的界面如下所示。

圖1

Draw3D圖形繪製效果(有陰影)

圖2

OpenGL功能激活效果

  下一節我們將會介紹Teechart組件的應用實例:序列與函數庫組件。將會有演示,功能,設計,設置,技巧和界面六個方面的介紹。如果有對Teechart圖表感興趣的朋友,可以多多關注本教程,並且歡迎在評論區留言。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章