1 / 24

eShop-MIS 供应商信息的查询与图形化显示

eShop-MIS 供应商信息的查询与图形化显示. 长沙民政职业技术学院. 本单元知识点. 1. VB.NET 中绘制图形的常见对象的使用. 2. 掌握颜色、画笔、画刷的使用方法. 3. 掌握 Graphics 的各种绘制图形的方法. 4. 熟悉开发图形程序的流程、方法. 主要内容. 8.1 、任务描述、分析与实现 8.2 、坐标系统 8.3 、颜色系统 8.4 、 Graphics 对象 8.5 、拓展实践 —— 简单绘图软件的实现. 8.1 、任务描述与实现. 问题描述.

jag
Télécharger la présentation

eShop-MIS 供应商信息的查询与图形化显示

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. eShop-MIS供应商信息的查询与图形化显示 长沙民政职业技术学院

  2. 本单元知识点 1 VB.NET中绘制图形的常见对象的使用 2 掌握颜色、画笔、画刷的使用方法 3 掌握Graphics的各种绘制图形的方法 4 熟悉开发图形程序的流程、方法 长沙民政学院软件学院

  3. 主要内容 • 8.1、任务描述、分析与实现 • 8.2、坐标系统 • 8.3、颜色系统 • 8.4、Graphics对象 • 8.5、拓展实践——简单绘图软件的实现 长沙民政学院软件学院

  4. 8.1、任务描述与实现 • 问题描述 • 在供应商信息管理系统中,要示提供按省份的查询功能,并以条形图的方式显示每个省份供应商的数量,以扇形图的方式显示各省份供应商所占的比例 长沙民政学院软件学院

  5. 实现任务的主要思路 创建VB项目 界面 设计 代码 设计 调试 运行 打开7-1的项目VB_SupplierMgr 1、添加两个按钮“条形统计图”和“扇形统计图” 2、添加一个PictureBox控件用来显示图形 1、添加一个数组,用来保存统计各省份供应商的数量 2、添加一个函数来统计各个省份的供应商数量 3、根据数据绘制图形 • F5调试运行程序 • F9设置/清除断点 • F8逐语句运行程序 • 所涉及到的主要知识点: • 坐标系统、颜色系统 • Graphics对象以及其绘图方法 • PictureBox控件 长沙民政学院软件学院

  6. 主要实现环节(数据准备) • 0、系统原来的供应商省份信息保存在AArea()数组中,为了测试方便,先用随机函数Rnd随机生成数据 • '随机生成供应商地区信息数据 • Function GenData() As String() • Dim i, k As Integer • For i = 0 To MAX_NUMS - 1 • k = Rnd() * (MAX_AREAS - 1) • AArea(i) = Area(k) • Next • Return Me.AArea • End Function • 1、添加一个数组,记录各省份供应商的数量 • Private ANumsByArea(MAX_AREAS) As Integer • 2、供应商所分布的省份的数组 • Private Area() As String = {"湖南", "湖北", "河南", "河北"} • 3、定义常量,供应商共分布在4个省份 • Const MAX_AREAS As Integer = 4 长沙民政学院软件学院

  7. 主要实现环节(定义过程) • 4、设计一个过程来统计各省供应商的数量 • ' 按地区统计每个省份供应商人数,并记录在AnumsByArea数组中 • Function GetSuppliersByArea() As Integer() • Dim i, j As Integer • For i = 0 To MAX_NUMS-1 • For j = 0 To MAX_AREAS-1 • If Me.AArea(i) = Me.Area(j) Then • Me.ANumsByArea(j) += 1 • End If • Next • Next • Return Me.ANumsByArea • End Function 长沙民政学院软件学院

  8. 主要实现环节(条形图的实现) Private Sub btnRect_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnRect.Click '获取绘图对象 Dim g As Graphics g = Me.picDraw.CreateGraphics Dim i As Integer '清除图像 g.Clear(Me.picDraw.BackColor) '定义绘制文字的格式 Dim fr As New StringFormat(StringFormatFlags.DirectionVertical) For i = 0 To MAX_AREAS - 1 '定义绘图的颜色 Dim c As Color = System.Drawing.ColorTranslator.FromOle(QBColor(i)) '定义画笔 Dim pen As New Pen(c, 1) '定义填充的画刷 Dim br As New SolidBrush(c) '绘制条形 g.DrawRectangle(pen, 10 + 40 * i, 0, 10, Me.ANumsByArea(i)) '填充条形 g.FillRectangle(br, 10 + 40 * i, 0, 10, Me.ANumsByArea(i)) '绘制文字 g.DrawString(Area(i) & " " & Me.ANumsByArea(i), Me.Font, Brushes.Red, _ 10 + 40 * i, Me.ANumsByArea(i) + 10, fr) Next End Sub 长沙民政学院软件学院

  9. 主要实现环节——扇形图的实现(一) Private Sub btnPie_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPie.Click '获取绘图对象 Dim g As Graphics g = Me.picDraw.CreateGraphics g.Clear(picDraw.BackColor) Dim i, sum As Integer '求供应商的数量 For i = 0 To MAX_AREAS - 1 sum += Me.ANumsByArea(i) Next 长沙民政学院软件学院

  10. 主要实现环节——扇形图的实现(二) Dim stangle As Integer = 0 For i = 0 To MAX_AREAS - 1 '定义绘图的颜色 Dim c As Color = _ System.Drawing.ColorTranslator.FromOle(QBColor(i)) '定义画笔 Dim pen As New Pen(c, 1) '定义填充的画刷 Dim br As New SolidBrush(c) '绘制扇形 Dim angle As Single = Me.ANumsByArea(i) / sum * 360 g.DrawPie(pen, 0, 0, picDraw.Width, picDraw.Height, stangle, angle) '填充扇形 g.FillPie(br, 0, 0, picDraw.Width, picDraw.Height, stangle, angle) ‘在此处添加绘制文字的代码 stangle += Me.ANumsByArea(i) / sum * 360 Next 长沙民政学院软件学院

  11. 主要实现环节——扇形图的实现(三) 下面的代码在扇形图中绘制文字 Dim x, y As Integer '计算文字的坐标 x = Math.Cos((stangle + angle / 2) / 360 * 2 * 3.14) * picDraw.Width / 3 y = Math.Sin((stangle + angle / 2) / 360 * 2 * 3.14) * picDraw.Width / 3 '绘制文字 x += Me.picDraw.Width / 2 y += Me.picDraw.Height / 2 g.DrawString(Area(i) & Me.ANumsByArea(i) / sum * 100 & "%", _ Me.Font, Brushes.Red, x, y, StringFormat.GenericDefault) 长沙民政学院软件学院

  12. 8.2、坐标系统 • Visual Basic 的坐标系统是指在屏幕(screen)、窗体(form)、容器(container)上定义的表示图形对象位置的平面二维格线,一般采用二元组(x, y)的形式定位。其中x 值是沿 x 轴点的位置,最左端是缺省位置 0。y 值是沿 y 轴点的位置,最上端是缺省位置 0。窗体的坐标系统的图示 长沙民政学院软件学院

  13. 8.3、颜色系统 • Visual Basic使用固定的颜色系统,每种颜色都由一个Long型整数表示。主要有4种方式可以用于指定颜色值: • RGB函数。 • QBColor函数。 • Visual Basic的Color对象中的内部颜色函数。 • 输入Long型整数颜色值。 长沙民政学院软件学院

  14. QBColor函数 • QBColor函数能够选择Microsoft Quick Basic的16种颜色中的一种. Me.BackColor = System.Drawing.ColorTranslator.FromOle(QBColor(5)) 长沙民政学院软件学院

  15. RGB函数 在计算机中,使用RGB模型来定义颜色,即任何颜色都可以用红色、绿色、蓝色三种基色的不同比例来表示。每种基色用一个0 ~ 255 之间的数字来表示颜色的饱和度,最小值0表示没有颜色,最大值255表示为颜色的最高饱和度。如(0,0,0)表示什么颜色都没有,即黑色。而(255,255,255)表示各种颜色的最高饱和度,即白色。计算机所能表示的颜色为256×256×256 = 16 777 216种。RGB(Red ,Green ,Blue) Me.BackColor = System.Drawing.ColorTranslator.FromOle(RGB(0, 0, 255)) 长沙民政学院软件学院

  16. Color结构 • Color是一个表示颜色的数据结构,位于System.Drawing名称空间下面,提供了很多获取系统颜色的属性与方法 Dim c As System.Drawing.Color c = Color.FromArgb(255, 0, 0) '构造一个颜色为绿色结构 Me.BackColor = c '设置窗体的前景色为绿色 长沙民政学院软件学院

  17. 绿色分量 蓝色分量 红色分量 用整数直接设置颜色 因此一个16进制的数&HFF0000所代表的颜色用RGB表示为RGB(0,0,&HFF),即为蓝色。以下的代码将窗体的背景颜色改为绿色, Me.BackColor = System.Drawing.ColorTranslator.FromOle(&H00FF00) 长沙民政学院软件学院

  18. 常用的绘图类 长沙民政学院软件学院

  19. PictureBox 控件 与ImageList控件 • PictureBox一个图片框控件,位于System.Windows.Forms的名称空间内,通常使用 PictureBox 来显示位图、元文件、图标、JPEG、GIF 或 PNG 文件中的图形。 • PictureBox的常见属性与方法 • ImageList控件是一个图片集管理器,支持bmp、gif、jpg等图像格式。其属性Images用于保存多幅图片以备其他控件使用,其他控件可以通过ImageList控件的索引号和关键字引用ImageList控件中的每个图片。ImageList控件在运行期间是不可见的,因此添加一个ImageList控件时,它不会出现在窗体上,而是出现在窗体的下方。 • ImageList控件的一些常见属性和方法 长沙民政学院软件学院

  20. 【案例8-3】利用PictureBox与ImageList控件建立图片管理程序【案例8-3】利用PictureBox与ImageList控件建立图片管理程序 长沙民政学院软件学院

  21. 8.4 Graphics 对象 • 在Visual Basic.NET中,提供了在控件上绘制图形的两种方法: • 1) 使用CreateGraphics方法 • 2) 重写OnPaint方法 长沙民政学院软件学院

  22. 使用CreateGraphics方法绘图 • (1)声明一个Graphics对象。 • (2)用CreateGraphics方法建立—个Graphics对象。 • (3)用绘图方法画图。 • Dim g As Graphics • g = Me.CreateGraphics() • Dim myPen As New Pen(Color.Red,3) • g.DrawLine(myPen, 0, 0, 150, 200) 长沙民政学院软件学院

  23. Graphics 类包含许多绘制操作方法和图像操作方法 (查找帮助学习) • (1)绘制直线的方法:DrawArc、DrawBezier、DrawEllipse、DrawImage、DrawLine、DrawPolygon、DrawRectangle 和 DrawString。 • (2)填充形状的方法:FillClosedCurve、FillEllipse、FillPath、FillPolygon 和 FillRectangle。 • (3)清除绘图图面的方法:Clear。 • (4)从图像创建新的 Graphics 对象的方法:FromImage。 长沙民政学院软件学院

  24. 8.5、拓展实践——简单绘图软件的实现 【案例8-4】利用Graphics对象创建简单画笔程序 长沙民政学院软件学院

More Related