项目五 窗体上绘图 任务列表: 1、在窗体上绘制各种基本图形 2、在窗体上绘制文本.

Slides:



Advertisements
Similar presentations
主要内容 Java 的常用包 Java 的常用包 “ == ” 和 “ equals ” 的用法 “ == ” 和 “ equals ” 的用法 基本数据类型与引用类型 基本数据类型与引用类型 String 和 StringBuffer String 和 StringBuffer 对象的克隆( clone.
Advertisements

第四章 类、对象和接口.
科学就医健康教育核心信息 健康中国行·科学就医 一、倡导科学就医 二、遵从分级诊疗 三、定期健康体检 四、鼓励预约挂号 五、就医注意事项
★中国近代史: 1840年————1949年 鸦片战争 新中国诞生 ★历史线索: 1、资本主义列强对中国的侵略 2、中国人民的反抗和探索:
視窗應用程式表單的基本輸出入 資管系 助理教授 詹曉苓.
园林制图相关知识.
計算機程式及實習 期末報告 題目:商店結帳系統
JAVA程序设计 天津工程职业技术学院计算机工程系软件技术教研室.
人 工 智 慧 報 告 五子棋AI設計 報告者 : 潘輝銘.
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
四資二甲 第三週作業 物件導向程式設計.
學校:光春國中 班級:七年三班 製作團隊: 顏序芳 李邰岳 謝宜軒
Hello小程序的运行和编译 Java AppletJava小程序的构成 1、关键字
项目:贪吃蛇游戏设计 工作任务一:系统设计(system design) 工作任务二:豆类(Bean)设计
102學年度預算編製說明會 主辦單位:會計室 102/02/22.
第一章 面向对象程序设计.
CH09.
Java Applet的运行原理 在网页向Java Applet传值 在Java Applet中播放声音 在Java Applet中使用组件
第11章 Java多媒体技术.
第14章 图形与图像 14.1 绘制文本 14.2 绘制基本图形 14.3 建立字体 14.4 清除 14.5 Java 2D
14 繪圖與動畫 [我的小畫家][打磚塊遊戲] 14-1 繪圖的基礎 14-2 滑鼠事件與基本繪圖 14-3 在Bitmap物件繪圖
第十八章 图形和多媒体.
第13章多项目设计与开发.
6.1VB.net概述 6.2初学者工具包 6.3图形图像处理 6.4声音及视频处理
第6章 多态性与虚函数.
项目:贪吃蛇游戏设计 工作任务三:块类(Block)设计 工作任务四:蛇类(Snake)设计
第三章 控制结构.
第5章 Java中类、对象、接口 及包的概念 5.1 类的基本概念 5.2 类的继承概念 5.3 抽象类和接口 5.4 包.
第二十八章 開發新的VCL元件 雖然BCB內提供了很多VCL元件,但是一定還有一些我們常常需要用的介面並沒有製作成VCL元件,或是一些個人化的介面,我們也有需要做成VCL元件。在第十三章,我們將介紹如何自行開發新的VCL元件。
第9课 北美大陆上的新体制 导入新课 新课教学 课堂小结 知识结构 巩固练习
計算機概論 請老師填入姓名主講 課本:數位傳真2012 博碩文化出版發行.
第 11 章 繪圖與多媒體.
第5章 图形和文本输出.
第五章 图形图像编程 本章的目的是学习使用GDI+的图形图像编程方法,希望在学习本章以后,能编制像Windows画图那样的程序。本章的重点是学习创建画笔、画刷等绘图工具,学习使用Graphics类的绘图函数绘制各种图形,学习利用Bitmap类处理图形和图像,最后简单介绍多媒体和3D图形程序设计的基础知识。
快乐玩转eclipse plugin插件开发之swt
C#图形程序设计基础 1 GDI+绘图基础 2 基本图形的绘制 3 实用图形程序设计.
Windows 程式設計 (使用 C++ / C#)
Ch10 類別與物件-方法 Java程式設計(2).
C#程序设计 c# programming GDI+绘图 C#程序设计课程组.
Java语言程序设计 第八部分 Applet小程序.
類別的繼承 Vehicle Car.
中国矿大计算机学院杨东平 第5章 接口和包 中国矿大计算机学院杨东平
第5章 .NET框架类 5.
Windows Form绘图类及其简介.
第12章 繪圖與多媒體 12-1 繪圖的基礎 12-2 繪出文字和圖形 12-3 載入與顯示圖形檔案 12-4 建立多媒體的動畫效果
CSS樣式 靜宜大學 資管系 楊子青.
資訊學科中心研習 JAVA程式設計專題 臺北市立大理高級中學 黃世隆 2019/2/23.
P2P聊天工具.
第4章 視窗應用程式的基本輸出入 4-1 物件基礎程式設計 4-2 表單控制項 4-3 按鈕控制項 4-4 資料輸出的標籤控制項
第6章 GDI+编程 GDI+ 已完全替代 GDI,以图形图像作为对象,可在 Windows 窗体应用程序中以编程方式绘制或操作图形图像。虽然无法对 Web 窗体直接使用 GDI+,但可以通过 Web 服务器的“图像”(Image) 控件显示图形图像。 处理图像图形包括创建 Graphics 对象,使用.
JAVA 编 程 技 术 主编 贾振华 2010年1月.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
C++复习2----类与对象.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
Interfaces and Packages
林福宗 清华大学 计算机科学与技术系 2008年9月 2019年5月5日 多媒体技术教程 第4章 彩色数字图像基础 林福宗 清华大学 计算机科学与技术系 2008年9月.
Object-Oriented Programming in C++ 第二章 类和对象
本节内容 对象拷贝 视频提供:昆山爱达人信息技术有限公司.
_13简单的GDI绘图操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
订单汇总单功能详解 -芜花.
本节内容 函数嵌套调用的内存布局 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
程式設計 Visual Basic簡介 週次:4 建國技術學院 資管系 饒瑞佶 2003年11月1日.
Java语言程序设计 清华大学出版社 第6章 java图形与图像处理.
C# 匿名委派 + Lambda + Func 建國科技大學 資管系 饒瑞佶.
所得稅法第14條、第126條修正條文 薪資所得計算方式二擇一 定額減除 特定費用減除 維持現行薪資所得特別扣除額20萬元減除方式
Applet.
本节内容 在堆中创建对象 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
三、 动量和角动量 1 、 质点动量定理 动量 冲量.
变量定位图形 Java中数据的类型分为四种:基本数据类型、数组类型、类类型以及接口类型。任何常量和变量都一定是上述四种数据类型中的一种。简单数据类型的实例化有两种:变量和常量。 变量名和常量名必须是Java语言中合法的标识符。 常量是在程序运行期间值不改变的量。 变量是在程序运行期间值可通过赋值改变的量,
Presentation transcript:

项目五 窗体上绘图 任务列表: 1、在窗体上绘制各种基本图形 2、在窗体上绘制文本

一、项目教学目标 1、学会Graphic对象的使用 2、学会画笔的使用 3、学会使用矩形 4、学会绘制各种形状 5、学会绘制文本 6、掌握持久化窗体上图形的方法

二、项目知识准备 1、GDI+与绘图命名空间 (1)GDI+的概念 GDI+是GDI(Graphics Device Interface,图形设备接口)的改进产品。 (2)GDI+的绘图命名空间 用户所使有的GDI+函数都保存在System.Drawing.d11程序集中。其中包括System.Drawing、System.Drawing.Text、System.Drawing.Printing、System.Drawing.Imaging、System.Drawing.Drawing2D和System.Drawing.Design等命名空间。

二、项目知识准备 2、 Graphics对象 创建Graphics对象的方法—般有三种 : (1)利用窗体或控件的Paint事件的参数PaintEventArgs创建Graphics对象。 利用该方式创建Graphics对象的例子如下: privatevoidForml_Paint(object sender,PaintEventArgs e) { Graphics g=e.Graphics;//声明一个Graphics对象g }

二、项目知识准备 (2)使用窗体或控件的CreateGraphics方法 窗体和控件类都有一个CreateGraphics方法,通过该方法可以在程序中生成此窗体或控件所对应的Graphics对象。这种方法一般应用于对象已经存在的情况下。如下所示 Graphics g; g=this.CreateGraphics(); (3)使用Image的派生类创建Graphics对象。使用Image的任何派生类均可以生成相应的Graphics对象,这种方法一般适用于在C#中对图像进行处理的场合。如下: Bitmap b=new Bitmap("Mybmp.bmp"); Graphics g=Graphics.FromImage(b);

二、项目知识准备 3. Pen对象 (1)Pen对象的创建 Pen类的构造函数有四种,使用方法如下。 创建某一颜色的Pen对象:public Pen(Color) 创建某一刷子样式的Pen对象:public Pen(Brush) 创建某—刷子样式并具有相应宽度的Pen对象:public Pen(Brush,float) 创建某一颜色和相应宽度的Pen对象:public Pen(Color,float)

二、项目知识准备 (2)Pen对象的常用属性 (1)Alignment属性:用来获取或设置此Pen对象的对齐方式。 (2)Color属性:用来获取或设置此Pen对象的颜色。 (3)Width属性:用来获取或设置此Pen对象的宽度。 (4)DashStyle属性:用来获取或设置通过此Pen对象绘制的虚线的样式。 (5)DashCap属性:用来指定虚线两端风格,是一个DashCap枚举型的值。 (6)StartCap属性:用来获取或设置通过此Pen对象绘制的直线起点的帽样式。 (7)EndCap属性:用来获取或设置通过此Pen对象绘制的直线终点的帽样式。 (8)PenType属性:用来获取用此Pen对象绘制的直线的样式。

二、项目知识准备 4. Font对象 Font对象的常用属性

二、项目知识准备 例如有下列程序代码: private void button1_Click(object sender, System.EventArgs e) { Font fnt=new Font("Tahoma",20,FontStyle.Bold |FontStyle.Italic);//创建字体 Graphics g=this.CreateGraphics();//创建Graphics对象 g.DrawString("GDI+编程世界",fnt,new SolidBrush(Color.Blue),14,10);//输出文字 } 程序的执行结果如图5-1所示。

二、项目知识准备 图5-1 程序运行结果

二、项目知识准备 5. Brush对象 (1)SolidBrush画刷 SolidBrush类用来定义单一颜色的Brush,其构造函数如下。 public SolidBrush(Color.Color) 例如: SolidBrush MyBrush=new SolidBrush(Color.Blue); 该语句创建了一个名为MyBrush的蓝色画刷。 (2)HatchBrush画刷 HatchBrush类的构造函数有两种,分别如下:

二、项目知识准备 [格式1]:public HatchBrush(HatchStyle, Color); [格式2]:public HatchBrush(HatchStyle, Color, Color); HatchBrush画刷具有三个属性,分别如下: BackgroundColor属性:获取此 HatchBrush 对象的背景色。 ForegroundColor属性:获取此 HatchBrush 对象的前景色。 HatchStyle属性:获取此 HatchBrush 对象的阴影样式。 例如,有下列语句: HatchBrushHb=new HatchBrush(HatchStyle.Cross ,Color.Blue); 该语句创建一个名为Hb的画刷对象,该画刷的前景色为蓝色,填充样式为十字交叉。

(3)LinearGradientBrush画刷 二、项目知识准备 (3)LinearGradientBrush画刷 LinearGradientBrush类的构造函数有多种格式,最常用的格式如下。 public LinearGradientBrush(Point1, Point2, Color1, Color2); 该构造函数有四个参数,其中Point1是表示渐变的起始点,Point2是表示渐变的终结点,Color1表示的渐变的起始色,Color2表示的是渐变的终止色。此处的Point1和Point2是Point结构型的变量,Point结构表示一个点,有两个成员x和y,分别表示点的横坐标和纵坐标。

二、项目知识准备 例如有下列程序段: private void button1_Click(object sender, System.EventArgs e) { Graphics g=this.CreateGraphics();//生成图形对象 Pen Mypen=new Pen(Color.Green,5);//生成画笔 LinearGradientBrush MyBrush =new LinearGradientBrush( new Point(0,20), new Point(20,0),Color.Yellow ,Color.Blue );//生成渐变画刷 g.FillRectangle(MyBrush,0,0,200,100);//填充矩形 }

二、项目知识准备 图5-2 线性渐变填充

二、项目知识准备——常用图形的绘制方法 1.画直线 [格式1]:public void DrawLine(Pen pen,int x1,int y1,int x2,int y2); [格式2]:public void DrawLine(Pen pen,Point pt1,Point pt2); 例如有下列程序: private void button1_Click(object sender, System.EventArgs e) { Graphics g=this.CreateGraphics();//生成图形对象 Pen Mypen=new Pen(Color.Blue ,5);//生成画笔,蓝色,5个像素 g.DrawLine(Mypen,1,1,30,30);//画线 Point pt1=new Point(1,30); //生成起点 Point pt2=new Point(30,1); //生成终点 g.DrawLine(Mypen,pt1,pt2); //画线 }

二、项目知识准备——常用图形的绘制方法 图5-3 所画直线

二、项目知识准备——常用图形的绘制方法 2.画椭圆 [格式1]:public void DrawEllipse( Pen pen, Rectangle rect); [格式2]:public void DrawEllipse(Pen pen,int x,int y,int width, int height); 例如有以下程序: private void Form1_Click(object sender, System.EventArgs e) { Graphics g=this.CreateGraphics();//生成图形对象 Pen Mypen=new Pen(Color.Blue ,5);//生成画笔,蓝色,5个像素 g.DrawEllipse(Mypen,1,1,80,40);//画椭圆 Rectangle rect=new Rectangle(85,1,165,40);//生成矩形 g.DrawEllipse (Mypen,rect);//画椭圆 }

二、项目知识准备——常用图形的绘制方法 图5-4 绘制的椭圆

二、项目知识准备——常用图形的绘制方法 3.绘制圆弧 [格式1]:public void DrawArc(Pen pen,Rectangle rect,float startAngle,float sweepAngle); [格式2]:public void DrawArc(Pen pen,int x,int y,int width,int height,int startAngle,int sweepAngle); 例如有以下程序: private void Form1_Click(object sender, System.EventArgs e) { Graphics g=this.CreateGraphics();//生成图形对象 Pen Mypen=new Pen(Color.Blue ,5);//生成画笔,蓝色,5个像素 g.DrawArc(Mypen,1,1,80,40,90,270);//画弧线 Rectangle rect=new Rectangle(85,1,165,40);//生成起点 g.DrawArc (Mypen,rect,0,90);//画弧线 }

二、项目知识准备——常用图形的绘制方法 图5-5 绘制的弧线

二、项目知识准备——常用图形的绘制方法 4.画扇形图 使用Graphics对象的DrawPie方法可以绘制扇形图,所谓扇形图其实就是把一段圆弧的两个端点与圆心相连。DrawPie方法的格式与DrawArc方法基本一致。 例如有以下程序: private void Form1_Click(object sender, System.EventArgs e) { Graphics g=this.CreateGraphics();//生成图形对象 Pen Mypen=new Pen(Color.Blue ,5);//生成画笔,蓝色,5个像素 g.DrawPie(Mypen,1,1,80,40,90,270);//画扇形 Rectangle rect=new Rectangle(85,1,165,40);//生成矩形 g.DrawPie (Mypen,rect,0,90);//画扇形 }

二、项目知识准备——常用图形的绘制方法 图5-6 绘制的饼形

二、项目知识准备——常用图形的绘制方法 5.画矩形 [格式1]: public void DrawRectangle( Pen pen, Rectangle rect); [格式2]:public void DrawRectangle(Pen pen,int x,int y,int width,int height); 例如有以下程序: private void Form1_Click(object sender, System.EventArgs e) { Graphics g=this.CreateGraphics();//生成图形对象 Pen Mypen=new Pen(Color.Blue ,2);//生成画笔,蓝色,2个像素 g.DrawRectangle (Mypen,5,5,80,40);//画矩形 Rectangle rect=new Rectangle(85,15,140,50);//生成矩形 g.DrawRectangle (Mypen,rect);//画矩形 }

二、项目知识准备——常用图形的绘制方法 图5-7 绘制的矩形

二、项目知识准备——常用图形的绘制方法 6.填充椭圆 [格式1]:public void FillEllipse(Brush brush, Rectangle rect); [格式2]:public void DrawEllipse(Brush brush,int x,int y,int width, int height); 例如有以下程序: private void Form1_Click(object sender, System.EventArgs e) { Graphics g=this.CreateGraphics();//生成图形对象 SolidBrush BlueBrush = new SolidBrush(Color.Blue);//生成填充用的画刷 int x = 0;//定义外接矩形的左上角坐标和高度及宽度 int y = 0; int width = 200; int height = 100; Rectangle rect = new Rectangle( x, y, width, height);//定义矩形 g.FillEllipse(BlueBrush,rect);//填充椭圆 }

二、项目知识准备——常用图形的绘制方法 图5-8 填充的椭圆

三、项目实践 实例一:利用鼠标画图 【实例题目】:编写一个利用鼠标在窗体上画图的程序,无论何时用户按下并拖动鼠标均会画出一条线。程序的运行界面如图5-9所示。 图5-9 程序运行界面

四、拓展训练 练习一:可擦写图形轮廓的实现 【练习题目】:建立一个让用户画一系列椭圆的程序,当用户按下并拖动鼠标时,将出现一个椭圆轮廓,该椭圆轮廓表示所画椭圆的大小。当用户松开鼠标键时,将在窗体上绘制出用蓝色填充的椭圆。图4-10是程序运行时鼠标拖动时出现的虚线轮廓,图4-11是松开鼠标后画出的椭圆。

四、拓展训练 图4-10 绘制和椭圆轮廓 图4-11 最后绘制的椭圆