第12章 繪圖與多媒體 12-1 繪圖的基礎 12-2 繪出文字和圖形 12-3 載入與顯示圖形檔案 12-4 建立多媒體的動畫效果

Slides:



Advertisements
Similar presentations
計算機程式及實習 Computer Program Design and Experiment) 期末報告 ppt 南台科技大學機械工程系 姓名 : 蔡中銘 學號 :4A 授課老師 : 謝慶存大帥哥.
Advertisements

人力資源管理 Starbucks DIM 李念靜 DIM 伍嘉密 DIM 戴逸銓
視窗應用程式表單的基本輸出入 資管系 助理教授 詹曉苓.
題目:徽章之記憶 南台科技大學 機械系 車輛一乙 學號:4A 姓名:黃冠嘉 教師:謝慶存
計算機程式及實習 期末報告 題目:超級猜一猜
第二章 VB的编程机制 【授课时间】第3周,第2次课 【授课题目】 2.1 面向对象程序设计概述 2.2 VB中的对象
計算機概論 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 演算法與流程圖 4-3 視窗程式語言設計 4-4 資料結構.
計算機程式及實習 期末報告 題目:商店結帳系統
ASP.NET 網頁製作教本 -- 從基本語法學起
第10章 处理图形 Visual Basic 程序设计教程.
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
南台科技大學 機械工程系 車輛一甲 學號:4A 學生:黃信成 老師:謝慶存
Visual Basic 2005學習範本 第5章 選擇結構.
1.了解VB6.0的功能特点 、集成环境。 2.理解面向对象程序设计的几个概念。 3.掌握VB应用程序设计的步骤。
项目:贪吃蛇游戏设计 工作任务一:系统设计(system design) 工作任务二:豆类(Bean)设计
CH09.
14 繪圖與動畫 [我的小畫家][打磚塊遊戲] 14-1 繪圖的基礎 14-2 滑鼠事件與基本繪圖 14-3 在Bitmap物件繪圖
第十八章 图形和多媒体.
6.1VB.net概述 6.2初学者工具包 6.3图形图像处理 6.4声音及视频处理
五-4 台灣的生活禮俗 組員:603 15號 黃醴萬 6號 吳家熙 5號 楊証傑 11號 李偉新.
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
Visual Basic 期中報告 組長:沈亞臻 組員:蔣佳育 張庭茹
Visual Basic 6.0之事件 事件(Event)?
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
CH10.
程式簡介、VB、物件導向 國立北門高中 林明璋.
第 11 章 繪圖與多媒體.
CH11.
建立VB.NET應用程式 資管系 助理教授 詹曉苓.
第2章 建立Visual Basic應用程式 2-1 如何設計Visual Basic應用程式 2-2 建立主控台應用程式
第2章 建立Visual Basic應用程式.
第10章 图 形 基 础 10.1 坐标系 10.2 绘图属性 10.3 图形控件 10.4 图形方法 习题十.
第16章 Windows Form與資料繫結 16-1 資料繫結的基礎 16-2 在專案新增資料來源 16-3 使用資料來源建立單筆編輯表單
Ch07 Java Applets 物件導向系統實務.
项目五 窗体上绘图 任务列表: 1、在窗体上绘制各种基本图形 2、在窗体上绘制文本.
C#图形程序设计基础 1 GDI+绘图基础 2 基本图形的绘制 3 实用图形程序设计.
Windows 程式設計 (使用 C++ / C#)
第18章 B4J的跨平台應用程式開發 18-1 B4J的GUI設計工具與介面控制項 18-2 使用B4J的介面控制項
初识Visual Basic.
第一章 VB概述 本章重点和难点 1.1 VB 概述 1.2 面向对象的程序设计方法基础
C#程序设计 c# programming GDI+绘图 C#程序设计课程组.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
Visual Basic程序设计基础 计算机科学学院.
第1章 概述 程序设计语言的发展 Visual Basic 6.0简介 Visual Basic 6.0集成开发环境 设计程序的一般步骤.
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
第10章 視窗應用程式的工具列與功能表.
2D / 3D 遊戲程式設計入門 使用 XNA 3.0 與 C# 2D圖形與字型的呈現.
form1 卡拉OK pictureBox1 fish1.bmp pictureBox2 fish2.bmp label1 卡拉OK字幕機
程式設計 Visual Basic簡介 週次:1 建國技術學院 資管系 饒瑞佶 2003年9月17日.
多媒體概論報告-BMP 組員名稱: 盧彥良-資料蒐集 周誠哲-資料蒐集
Windows Form绘图类及其简介.
Ch03 基本輸出入介面設計 視窗程式設計 授課教師:王大瑾.
第二章 创建用户界面 本章重点和难点 2.1 基本属性 2.2 创建窗体 2.3 Visual Basic的常用控件 2.4 制作菜单.
多媒體.
暴力、草莽、土野、情色、權慾 —華西街的成人童話
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
題目:南台飲料店結帳系統 南台科技大學 機械工程系 車輛一甲 學號:4A
第6章 GDI+编程 GDI+ 已完全替代 GDI,以图形图像作为对象,可在 Windows 窗体应用程序中以编程方式绘制或操作图形图像。虽然无法对 Web 窗体直接使用 GDI+,但可以通过 Web 服务器的“图像”(Image) 控件显示图形图像。 处理图像图形包括创建 Graphics 对象,使用.
VB语言程序设计教程.
刑事訴訟法 不受理.
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作 南台科技大學 機械工程系 題目:南台電影城結帳系統 班級 : 車輛一甲 學號 : 4A 授教學生: 阮偉倫 授課老師: 謝慶存.
程序基础 2019/4/25.
第 11 章 功能表列與工具列的設計 & 第 10 章 檔案.
計算機程式及實習 Computer Program Design and Experiment) 期末報告ppt製作
计算机应用基础 潍坊学院 计算机工程学院 主讲人:丁素英.
Print方法和函数 2019/5/19.
程式設計 Visual Basic簡介 週次:4 建國技術學院 資管系 饒瑞佶 2003年11月1日.
MenuStrip by Szeto CY Visual C# 2008.
Applet.
科目:程式語言與設計 老師:蔣德威 本檔案可至以下網址下載: www1.chihlee.edu.tw/teachers/ctw/prog
Presentation transcript:

第12章 繪圖與多媒體 12-1 繪圖的基礎 12-2 繪出文字和圖形 12-3 載入與顯示圖形檔案 12-4 建立多媒體的動畫效果 12-5 應用實例:螢幕保護程式

12-1 繪圖的基礎 12-1-1 繪圖的座標 12-1-2 建立畫布 12-1-3 建立畫筆和筆刷

12-1-1 繪圖的座標 在電腦螢幕的座標系統是以「像素」(Pixels)為單位,在表單顯示區域或控制項建立的畫布,它是一張長方形區域,其左上角為原點,座標是(0, 0),X軸從左到右,Y軸由上到下,如下圖所示:

12-1-2 建立畫布-說明 Visual Basic繪圖功能是Graphics物件,當在表單或控制項建立Graphics物件後,就可以將表單或控制項轉換成畫布,在畫布上繪出所需的圖形。

12-1-2 建立畫布- 建立Paint事件的畫布 在表單或控制項上繪圖時,就會觸發Paint事件,在Paint事件處理程序的PaintEventArgs參數可以取得Graphics物件。 表單Form1的Paint事件處理程序,如下所示: Private Sub Form1_Paint(sender As Object, e As _ PaintEventArgs) Handles Me.Paint Dim g As Graphics = e.Graphics g.Clear(Color.Blue) ‘ 繪圖方法的程式碼 ……… End Sub

12-1-2 建立畫布- CreateGraphics()方法建立畫布 如果沒有使用Paint事件處理程序,我們可以在其他事件處理程序使用CreateGraphics()方法來建立Graphics物件。例如:表單Form1的Click事件處理程序,如下所示: Private Sub Form1_Click(sender As Object, _ e As EventArgs) Handles Me.Click Dim g As Graphics = Me.CreateGraphics() ‘ 繪圖方法的程式碼 ……… End Sub

12-1-2 建立畫布- Visual Basic專案 Visual Basic專案:Ch12-1-2 在Windows應用程式分別使用Paint事件和CreateGraphics()方法建立表單和標籤控制項的畫布,然後在畫布範圍繪出彩色框線,如下圖所示:

12-1-3 建立畫筆和筆刷-說明 在Visual Basic表單或控制項建立好畫布後,我們在開始繪圖前,需要一些繪圖工具,其相關物件與結構如下表所示:

12-1-3 建立畫筆和筆刷-色彩Color結構 Visual Basic指定色彩是使用Color結構屬性(關於Visual Basic結構的說明請參閱附錄A-8節),如下所示: g.Clear(Color.LightGray) 上述程式碼指定色彩為淡灰色。常用色彩結構屬性說明,如下表所示: 屬性 說明 Color.White 白色 Color.Black 黑色 Color.Red 紅色 Color.Green 綠色 Color.Blue 藍色 Color.Yellow 黃色 Color.Purple 紫色 Color.Gray 灰色 Color.Orange 橘色 Color.Navy 海軍藍

12-1-3 建立畫筆和筆刷-字型Font物件 字型是Font類別的物件,需要使用New運算子建立,如下所示: Dim font As Font = New Font("標楷體", 14, FontStyle.Bold) 上述程式碼建立Font物件font,使用的是類別建構子(即建立物件的方法,詳細說明請參閱附錄A-2-3節),其參數依序是字型名稱、字型尺寸和樣式,樣式是FontStyle列舉常數。

12-1-3 建立畫筆和筆刷-畫筆Pen物件 在使用Graphics物件的方法繪圖前,我們需要建立畫筆Pen物件,請使用New運算子建立Pen物件,如下所示: Dim pen As Pen = New Pen(Color.Red, 1) 在建立Pen物件後,就可以在程式碼使用Color和Width屬性更改畫筆物件的色彩與寬度,如下所示: pen.Width = 3 pen.Color = Color.Green

12-1-3 建立畫筆和筆刷- 筆刷Brush物件1 筆刷可以填滿圖形或顯示文字,其常用的類別如下表所示:

12-1-3 建立畫筆和筆刷- 筆刷Brush物件2 同樣的,Brush物件也需要使用New運算子來建立藍色的SolidBrush筆刷,如下所示: Dim brush1 As SolidBrush = _ New SolidBrush(Color.Blue) 如果使用TextureBrush類別,就可以使用圖檔來建立筆刷,如下所示: Dim brush2 As TextureBrush = _ New TextureBrush( _ New Bitmap("\範例程式\Ch12\back.bmp"))

12-1-3 建立畫筆和筆刷- Visual Basic專案 Visual Basic專案:Ch12-1-3 在Windows應用程式建立各種寬度的畫筆、色彩和圖形的筆刷後,可以分別繪出直線、填滿的橢圓形和長方形,如下圖所示:

12-2 繪出文字和圖形 12-2-1 繪出文字與線條 12-2-2 繪出圖形 12-2-3 繪出填滿圖形 12-2-4 位移、縮放和旋轉畫布

12-2-1 繪出文字與線條-說明 Graphics物件繪出文字與線條的方法,如下表:

12-2-1 繪出文字與線條- Visual Basic專案 Visual Basic專案:Ch12-2-1 在Windows應用程式的表單畫布顯示文字內容和使用For/Next迴圈繪出多條直線組合的幾何圖形,如下圖所示:

12-2-2 繪出圖形-方法 方法 說明 DrawRectangle(Pen, x, y, width, height) DrawPolygon(Pen, Points) 使用Pen畫筆以第2個參數Point物件陣列的座標繪出多邊形 DrawEllipse(Pen, x, y, width, height) 使用Pen畫筆在(x, y)座標的長方形左上角,寬width和高height的長方形中繪出橢圓形 DrawArc(Pen, x, y, width, height, startAngle, sweepAngle) 使用Pen畫筆在(x, y)座標的長方形左上角,寬width和高height的長方形中,繪出從startAngle開始共sweepAngle角度的弧形 DrawPie(Pen, x, y, width, height, startAngle, sweepAngle) 使用Pen畫筆在(x, y)座標的長方形左上角,寬width和高height的長方形中,繪出從startAngle開始共sweepAngle角度的扇形 DrawBezier(Pen, x1, y1, x2, y2, x3, y3, x4, y4 使用Pen畫筆以之後4個點的座標繪具茲曲線,貝茲曲線會從第1點繪製到第4點,使用第2和第3點來決定曲線的形狀

12-2-2 繪出圖形- DrawPolygon()方法 DrawPolygon()方法需要使用Point物件陣列的座標,每一個Point物件是一個端點座標,如下所示: Dim arrPoint() As Point = { _ New Point(170, 30), _ New Point(180, 120), _ New Point(250, 100)} 在建立Point物件陣列後,DrawPolygon()方法只是將座標使用Pen物件的畫筆,以直線連接起來。

12-2-2 繪出圖形-參數說明 startAngle參數是以度為單位,依順時針方向從X軸(為0度)到弧形起點的角度,參數sweepAngle依順時針方向從startAngle參數計算到弧形結束點的角度,負值是反時針方向。如下圖所示:

12-2-2 繪出圖形- Visual Basic專案 Visual Basic專案:Ch12-2-2 在Windows應用程式的表單畫布繪出逐漸放大的長方形、三角形、橢圓形、弧形、扇形和貝茲曲線,如下圖所示:

12-2-3 繪出填滿圖形-說明 Graphics物件關於繪出填滿圖形的相關方法,如下表所示: 方法 說明 FillRectangle(Brush, x, y, width, height) 使用Brush筆刷在(x, y)座標的長方形左上角繪出寬width和高height填滿的長方形 FillPolygon(Brush, Points) 使用Brush筆刷以第2個參數Point物件陣列的座標繪出填滿的多邊形 FillPie(Brush, x, y, width, height, startAngle, sweepAngle) 使用Brush筆刷在(x, y)座標的長方形左上角,寬width和高height的長方形中,繪出從startAngle開始共sweepAngle角度的填滿扇形 FillEllipse(Brush, x, y, width, height) 使用Brush筆刷在(x, y)座標的長方形左上角,寬width和高height的長方形中,繪出填滿的橢圓形

12-2-3 繪出填滿圖形- Visual Basic專案 Visual Basic專案:Ch12-2-3 在Windows應用程式建立表單畫布後,使用上表方法以筆刷繪出填滿的長方形、橢圓形、扇形和多邊形,如下圖所示:

12-2-4 位移、縮放和旋轉畫布-方法 Graphics物件提供位移、縮放和旋轉畫布的方法,如下表所示:

如果需要顯示轉換效果,我們需要重繪畫布的圖形,此時是使用表單或控制項的Refresh()方法,如下所示: 12-2-4 位移、縮放和旋轉畫布-重繪 如果需要顯示轉換效果,我們需要重繪畫布的圖形,此時是使用表單或控制項的Refresh()方法,如下所示: Me.Refresh() lblOutput.Refresh() 上述程式碼可以重繪表單或控制項,以此例是表單和標籤控制項。

12-2-4 位移、縮放和旋轉畫布- Visual Basic專案 Visual Basic專案:Ch12-2-4 在Windows應用程式新增標籤控制項作為畫布後,輸入位移座標、比例和角度,即可顯示畫布縮放、旋轉或位移填滿的長方形,如下圖所示:

12-3 載入與顯示圖形檔案 12-3-1 載入和顯示圖檔 12-3-2 PictureBox圖形盒控制項顯示圖形 12-3-3 捲軸控制項

12-3-1 載入和顯示圖檔-說明 Visual Basic應用程式除了在畫布使用Graphics物件的方法繪出圖形外,對於現成BMP、GIF或JPG等格式的圖檔,我們也可以建立Windows應用程式,將圖檔載入和在畫布上顯示。 Visual Basic應用程式載入和顯示圖形檔案的方法有很多種,在這一節是使用Bitmap物件載入圖形後,呼叫DrawImage()方法顯示圖形;下一節則是建立PictureBox圖形盒控制項來載入和顯示圖形檔案。

12-3-1 載入和顯示圖檔-Bitmap物件 Bitmap物件的內容是儲存像素資料的圖檔影像,需要使用New運算子來建立此物件,如下所示: Dim buffer As Bitmap = _ New Bitmap(320, 220) 這是一個儲存在記憶體中,尺寸為320 X 220的圖檔。如果擁有現成圖片檔案,也可以使用Bitmap物件來載入圖片檔案,如下所示: Dim bmp = New Bitmap( _ path & "sample.bmp")

12-3-1 載入和顯示圖檔- 使用Bitmap物件建立Graphics物件 如果使用Bitmap物件來建立Graphics物件,我們就可以使用Graphics物件方法來編輯Bitmap物件儲存的圖形,因為在Graphics物件上繪製的圖形,就是繪在Bitmap物件的的點陣圖上,如下所示: Dim g As Graphics = _ Graphics.FromImage(buffer) g.Clear(Color.White) g.DrawLine(pen, x, y, e.X, e.Y)

12-3-1 載入和顯示圖檔- 在畫布顯示Bitmap物件 在表單或控制項畫布上顯示Bitmap物件,就是使用DrawImage()方法,如下所示: g.DrawImage(buffer, 1, 25) g.DrawImage(bmp, 1, 25, bmp.Width, _ bmp.Height + 25) 上述程式碼可以將Bitmap物件buffer顯示在畫布座標(1, 25),第2列指定圖形尺寸。

12-3-1 載入和顯示圖檔- Visual Basic專案 Visual Basic專案:Ch12-3-1 在Windows應用程式建立一個簡單的繪圖程式,可以載入現成圖形檔案、選擇不同色彩的畫筆和繪出線條,程式是將圖檔和線條都繪在Bitmap物件buffer上,所以可以將繪圖結果儲存成圖檔,如下圖所示:

12-3-2 PictureBox圖形盒控制項顯示圖形-說明 PictureBox圖形盒控制項是一種圖形控制項,可以用來顯示點陣圖格式BMP、GIF或JPG等圖檔的內容。 PictureBox

12-3-2 PictureBox圖形盒控制項顯示圖形-建立

12-3-2 PictureBox圖形盒控制項顯示圖形-屬性

12-3-2 PictureBox圖形盒控制項顯示圖形-Visual Basic專案 Visual Basic專案:Ch12-3-2 在Windows應用程式建立簡易的秀圖程式,只需在上方選擇檔案的選項按鈕,就可以在下方顯示圖檔內容,如下圖所示:

捲軸控制項是一種調整顯示位置的好工具,當文字內容太長或圖形太大時,可以使用捲動軸來調整顯示位置。 12-3-3 捲軸控制項-說明 捲軸控制項是一種調整顯示位置的好工具,當文字內容太長或圖形太大時,可以使用捲動軸來調整顯示位置。 Visual Basic捲軸控制項有兩種:一是垂直的VScrollBar控制項;一是水平的HScrollBar控制項。 VScrollBar HScrollBar

12-3-3 捲軸控制項-建立 在「工具箱」視窗的【所有Windows Form】區段,分別選【VScrollBar】和【HScrollBar】控制項後,就可以在表單上拖拉出捲軸控制項。

12-3-3 捲軸控制項-屬性與事件 VScrollBar和HScrollBar控制項的常用屬性與事件,如下表所示:

12-3-3 捲軸控制項- 繪出圖片的部分範圍 在PictureBox控制項如果只顯示部分的圖檔內容,首先定義長方形區域,請使用New關鍵字建立,如下所示: Dim oRect As Rectangle = New Rectangle(0, 0, _ ptbOutput.Width, ptbOutput.Height) Dim cRect As Rectangle = _ New Rectangle(hsbWidth.Value,vsbHeight.Value, _ 在建立好長方形的Rectangle物件後,就可以使用DrawImage()方法來顯示部分圖形,如下所示: g.DrawImage(ptbOutput.Image, oRect, cRect, _ GraphicsUnit.Pixel)

12-3-3 捲軸控制項- Visual Basic專案 Visual Basic專案:Ch12-3-3 在Windows應用程式建立秀圖程式,如果圖形很大,超過PictureBox控制項的尺寸,就可以使用捲軸控制項來檢視其他區域的圖形,如下圖所示:

12-4 建立多媒體的動畫效果 12-4-1 計時器控制項 12-4-2 建立圖形的動畫效果

12-4-1 計時器控制項-說明 在Visual Basic應用程式建立動畫需要使用Timer計時器控制項來控制繪圖或圖形顯示,Timer控制項可以在指定間隔時間自動產生事件,以便事件處理程序能夠建立動畫效果。

12-4-1 計時器控制項-建立 在「工具箱」視窗的【所有Windows Form】區段,按二下【Timer】控制項,可以在表單建立計時器控制項,然後將Timer控制項的【Name】屬性改為【tmrTimer】。

12-4-1 計時器控制項-屬性與事件 Timer控制項常用屬性與事件,如下表所示:

12-4-1 計時器控制項- Visual Basic專案 Visual Basic專案:Ch12-4-1 在Windows應用程式建立簡單的小時鐘,可以顯示電腦的系統時間,如下圖所示:

12-4-2 建立圖形的動畫效果-說明 在Visual Basic應用程式只需使用計時器控制項,配合圖形載入與顯示,每次調整圖形位置後,就可以建立圖形移動的動畫效果。

12-4-2 建立圖形的動畫效果- Visual Basic專案 Visual Basic專案:Ch12-4-2 在Windows應用程式建立動畫效果,可以看到一張圖形從左至右重複移動圖形的動畫,如下圖所示:

12-5 應用實例:螢幕保護程式-說明 Windows作業系統的螢幕保護程式是當使用者沒有使用電腦一段時間後,自動顯示的動畫畫面。通常螢幕保護程式會顯示動態繪圖或圖片效果。 在Visual Basic只需活用計時器控制項,就可以輕鬆建立自已的螢幕保護程式。

12-5 應用實例:螢幕保護程式-Visual Basic專案 Visual Basic專案:Ch12-5 在Windows應用程式建立簡單的螢幕保護程式,使用全螢幕和計時器控制項,以亂數決定色彩和尺寸來繪出幾何圖形的動畫效果,如下圖所示:

End