- 13
- 0
- 约3.83千字
- 约 10页
- 2018-08-28 发布于福建
- 举报
基于GDI绘图方法研究
基于GDI绘图方法研究
摘 要: 介绍GDI+的功能及VB.NET中GDI+绘制基本图形的方法,并以三角形绘制介绍代码编写的思路,详细说明GDI+绘制函数曲线的过程,总结GDI+绘图方法的流程。
关键词: VB.NET;GDI+;函数曲线;绘图方法
中图分类号:TP301 文献标识码:A 文章编号:1671-7597(2011)0810104-02
0 引言
GDI+可以绘制图形、文本,也可以将图形图像作为对象进行处理。GDI+是进行二维向量图形、图像及文字等方面处理的Win32 API,是目前在Windows窗体应用程序中以编程方式显示图形的惟一方法。所有GDI+的功能都包含在System.Drawing、System.Drawing.Image、System.Drawing.Drawing2D和System.Drawing.Text这些命名空间的各个类中。Visual Basic.NET通过这些命名空间所提供的功能进行图形设计和图形处理。
1 GDI+绘制基本图形的方法及流程
1.1 GDI+绘制基本图形的方法
1)画直线:DrawLine方法DrawLine(Pen,x1,y1,x2,y2)或Draw
Line(Pen,p1,p2)
2)画矩形和多边形:画矩形DrawRectangle(Pen,Rectangle)或者DrawRectangle(Pen,x,y,width,height);画多边形DrawPolygon(Pen,Point)Point是一个Point结构数组
3)画圆和椭圆:DrawEllipse(Pen,Rectangle)或者DrawEllipse
(Pen,x,y,width,height)
4)画圆弧:DrawArc(Pen,Rectangle,startAngle,sweepAngle)
5)画扇形:DrawPie(Pen,Rectangle,startAngle,sweepAngle)
6)清屏:Clear(Color)
1.2 GDI+绘制图像的流程及实例图
在此只以图2中绘制三角形为例,编写代码如下:
Dim g2 As Graphics 声明Graphics对象
G2 = PictureBox4.CreateGraphics创建Graphics对象
Dim greenPen As New Pen(Color.Green, 4) 声明画笔
Dim t1 As New Point(25, 45) 定义三角形三个顶点
Dim t2 As New Point(80, 110)
Dim t3 As New Point(110, 50)
Dim Trangle1 As Point() = {t1,t2,t3} 定义三角形三边的数组
g2.DrawPolygon(greenPen, Trangle1)画三角形
2 GDI+绘制函数曲线的方法及流程
在数学中我们接触过一些简单的函数曲线,比如直线:y=ax+b;抛物线:y=ax2+bx+c;正弦曲线:y=sinx;余弦曲线:y=cosx等等。
思考:我们如何在窗口上绘制如图3 所示的抛物线呢?
2.1 分析抛物线函数绘制
当X2-X1趋近于0时,A-B可近似为直线。如果在X的取值范围内,将无数个类似A-B的线段连接起来,就构成了这样一个曲线。我们可以根据这个思路,绘制函数曲线。
如图4所示,在窗口上要建立一个坐标系为XOY,坐标原点为(0,0),在窗口坐标中的坐标设为(a,b),y=f(x)曲线上的任意一点P在建立的坐标系上的坐标为(x,y),它与窗口坐标系上的坐标(x,y)的关系是x=a+x, y=b-y。
因为我们所有的曲线都是在窗口上绘制的,所以,在绘制任意函数曲线前,必须把函数表达式转换为窗口坐标系下的函数表达式。
现在我们将抛物线y=(1/300)x2-100如图5所示,代入x=a+x, y=b-y可得:
x= a + x → x = x- a ,y= b -(1/300)(x- a )2 + 100
2.2 绘制抛物线的步骤
根据上面的分析,我们确定了绘制抛物线的步骤。
1)确定原点坐标(a ,b):a = 1/2(窗口宽度)= 1/2 Width,b = 1/2(窗口高度)= 1/2 Height;
2)确定x取值范围,对于这个抛物线而言,x的取值范围是(0,Width);
3)确定点数即Point结构数组。本例中我们取1000个点:即I= 0 To 1000;
4)确定x表达式:因为x的取值范
您可能关注的文档
- 基于Flex车辆监测系统研究与设计.doc
- 基于Flex道路挖占管理系统研究与应用.doc
- 基于Flipped Classroom理论公共音乐课堂教学研究.doc
- 基于FLOEFD散热器翅片间距仿真设计.doc
- 基于Flosc乐器埙交互设计与实现.doc
- 基于FLOW MAP中美化学教材难度比较.doc
- 基于Flow理论小学数学游戏故事情节设计.doc
- 基于FLPP极端学习机人脸识别方法.doc
- 基于FLUENT3D绿色机房建模.doc
- 基于Floyd 最短路径算法电动汽车充电站选址分析.doc
- 山西天一大联考2025-2026学年高二上学期期末学情监测语文试题(试卷+解析).docx
- 山西忻州部分学校2025-2026学年高一上学期2月质量检测数学试题(人教B版)(试卷+解析).docx
- 山西运城市2025-2026学年高二第一学期期末调研测试数学试题(试卷+解析).docx
- 陕西省榆林市榆阳区2025-2026学年八年级上学期期末地理试题(试卷+解析).docx
- 陕西西安市碑林区2025-2026学年度第一学期期末八年级生物试题(试卷+解析).docx
- 四川省广元市苍溪县2025-2026年八年级上学期期末道德与法治试题(试卷+解析).docx
- 江苏泰州市姜堰区2025-2026学年七年级上学期1月期末数学试题(试卷+解析).docx
- 江苏省扬州市邗江区2025-2026学年九年级上学期期末考试化学试题(试卷+解析).docx
- 江西上饶市铅山县2025-2026学年第一学期期末考试八年级数学试题(试卷+解析).docx
- 江苏扬州市高邮市2025-2026学年度第一学期期末学业质量监测试题九年级英语(试卷+解析).docx
最近下载
- 话题10 文学与艺术——2025中考英语外研版文学、艺术与体育话题复习课件(共93张PPT)(含音频+视频).pptx VIP
- 生物分离提取技术 生物分离提取技术 6第六章 离子交换法.ppt VIP
- 起重锻造卸扣基础知识.ppt VIP
- 5REFLEXW软件培训10.ppt VIP
- 2025年太仓市太訸控股集团有限公司第二批公开招聘19人笔试模拟试题及答案解析.docx VIP
- 2025年重庆中考各科考纲 .pdf VIP
- 五年(2021-2025)高考英语真题分类汇编 专题17 语法埴空(全国通用)(原卷版).pdf VIP
- JB 8112-1999 一般起重机用锻造卸扣 D 形卸扣和弓形卸扣.pdf VIP
- 2026届高考语文二轮专题复习:整本书阅读:《论语》++课件.pdf VIP
- 人际沟通与礼仪(配套教材课件完整版电子教案.pptx
原创力文档

文档评论(0)