欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    直线曲线和图形.docx

    • 资源ID:15727006       资源大小:74.52KB        全文页数:24页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    直线曲线和图形.docx

    1、直线曲线和图形直线、曲线和图形.NET Framework 4.5其他版本GDI+ 的矢量图形部分可用于绘制直线和曲线,可用于绘制和填充形状。本节内容向量图形概述讨论矢量图形。GDI+ 中的笔、直线和矩形讨论绘制直线和矩形。GDI+ 中的椭圆和弧线定义弧形和椭圆并确定绘制这些形状所需的类。GDI+ 中的多边形定义多边形并确定绘制这些形状所需的类。GDI+ 中的基数样条定义基数样条并确定绘制这些形状所需的类。GDI+ 中的贝塞尔样条定义贝塞尔样条并确定绘制这些形状所需的类。GDI+ 中的图形路径描述路径以及如何创建和绘制这些路径。GDI+ 中的画笔和实心形状描述画笔类型以及如何使用这些画笔。GD

    2、I+ 中的开放曲线和闭合曲线定义开放曲线和闭合曲线以及如何绘制和填充这些曲线。GDI+ 中的区域描述与区域关联的方法。在 GDI+ 中限制绘制图面描述剪辑以及如何使用剪辑。用直线和曲线抗锯齿定义抗锯齿以及在绘制直线和曲线时如何使用抗锯齿。社区附加资源向量图形概述.NET Framework 4.5其他版本GDI+ 在坐标系中绘制直线、矩形和其他形状。您可以从各种各样的坐标系统中选择,但默认坐标系统的原点是在左上角,并且 x 轴指向右边,y 轴指向下边。默认坐标系统的度量单位是像素。GDI+ 的构造块计算机监视器是在一个点的矩形数组上创建其显示,这些点被称为图片元素或像素。各台监视器屏幕上显示的

    3、像素数量都是不同的,并且用户通常在一定程度上可以配置单独一台监视器上显示的像素数量。在使用 GDI+ 绘制直线、矩形或曲线时,需要提供有关要绘制的项目的某些关键信息。例如,可以通过提供两个点来指定一条直线,还可以通过提供一个点、高度和宽度来指定一个矩形。GDI+ 与显示设备驱动程序软件协同工作,以确定必须启用哪些像素来显示直线、矩形或曲线。下面的插图显示了已打开的用于显示从点 (4, 2) 到点 (12, 8) 的直线的像素。在实践中,人们发现某些基本构造块对于创建二维图片尤其有用。下表中列出了 GDI+ 支持的构造块: 行 矩形 椭圆 弧线 多边形 基数样条 贝塞尔样条使用图形对象进行绘制的

    4、方法GDI+ 中的Graphics类提供了绘制前面列表中的各项的方法:DrawLine、DrawRectangle、DrawEllipse、DrawPolygon、DrawArc、DrawCurve(针对基数样条)和DrawBezier。这些方法中的每一种都是重载的,即每种方法都支持几个不同的参数列表。例如,DrawLine方法的一个变体接收一个Pen对象和四个整数,而DrawLine方法的另一个变体接收一个Pen对象和两个Point对象。绘制直线、矩形和贝塞尔样条的方法具有多个伴随方法,可在一个调用中绘制若干个项:DrawLines、DrawRectangles和DrawBeziers。Dr

    5、awCurve方法也有一个伴随方法DrawClosedCurve,该伴随方法能够通过连接曲线的终点和起点的方式来闭合曲线。Graphics类的所有绘制方法与Pen对象共同工作。若要进行绘制,必须至少创建两个对象:Graphics对象和Pen对象。Pen对象存储要绘制项的特性,如线宽和颜色。将Pen对象作为参数之一传递给绘制方法。例如,下面的示例演示DrawLine方法的一个变体接收一个Pen对象和四个整数,并绘制一个宽 100、高 50 且左上角位于 (20, 10) 的矩形:C#VB myGraphics.DrawRectangle(myPen, 20, 10, 100, 50)GDI+ 中

    6、的笔、直线和矩形.NET Framework 4.5其他版本若要用 GDI+ 绘制直线,需要创建Graphics对象和Pen对象。Graphics对象提供进行实际绘制的方法,Pen对象存储特性,如直线的颜色、宽度和线型。绘制直线若要绘制直线,请调用Graphics对象的DrawLine方法。将Pen对象作为参数之一传递给DrawLine方法。下面的示例绘制了一条从点 (4, 2) 到点 (12, 6) 的直线:C#VB myGraphics.DrawLine(myPen, 4, 2, 12, 6)DrawLine是Graphics类的一个重载方法,因此,有数种为其提供参数的方式。例如,可构造两

    7、个Point对象并将Point对象作为参数传递给DrawLine方法:C#VB Dim myStartPoint As New Point(4, 2) Dim myEndPoint As New Point(12, 6) myGraphics.DrawLine(myPen, myStartPoint, myEndPoint)构造钢笔可以在构造Pen对象时指定某些特性。例如,有一种Pen构造函数允许您指定颜色和宽度。下面的示例绘制了一条从 (0, 0) 到 (60, 30) 宽度为 2 的蓝线:C#VB Dim myPen As New Pen(Color.Blue, 2) myGraphics

    8、.DrawLine(myPen, 0, 0, 60, 30)虚线和线帽Pen对象也公开属性(如DashStyle),这些属性可用于指定直线的特性。下面的示例绘制了一条从 (100, 50) 到 (300, 80) 的虚线:C#VB myPen.DashStyle = DashStyle.Dash myGraphics.DrawLine(myPen, 100, 50, 300, 80)可以使用Pen对象的属性为直线设置更多特性。StartCap属性和EndCap属性指定直线端点的外观;端点可以是平的、方形的、圆形的、三角形的或自定义的形状。LineJoin属性用于指定连接的线相互间是斜接的(联接

    9、时形成锐角)、斜切的、圆形的还是截断的。下面的插图显示了具有不同的线帽和联接类型的直线。绘制矩形用 GDI+ 绘制矩形与绘制直线类似。若要绘制矩形,需要Graphics对象和Pen对象。Graphics对象提供DrawRectangle方法,Pen对象存储特性(例如线宽和颜色)。将Pen对象作为参数之一传递给DrawRectangle方法。下面的示例绘制了一个矩形,其左上角位于 (100, 50),宽度为 80,高度为 40:C#VB myGraphics.DrawRectangle(myPen, 100, 50, 80, 40)DrawRectangle是Graphics类的一个重载方法,因

    10、此,有数种为其提供参数的方式。例如,可构造Rectangle对象并将Rectangle对象作为参数传递给DrawRectangle方法:C#VB Dim myRectangle As New Rectangle(100, 50, 80, 40) myGraphics.DrawRectangle(myPen, myRectangle)Rectangle对象具有用于处理和收集矩形相关信息的方法和属性。例如,Inflate和Offset方法可更改矩形的大小和位置。IntersectsWith方法判断矩形是否与另一给定矩形相交,Contains方法判断一个给定点是否在该矩形内。GDI+ 中的椭圆和弧线

    11、.NET Framework 4.5其他版本可以使用Graphics类的DrawEllipse和DrawArc方法轻松绘制椭圆和弧线。绘制椭圆若要绘制椭圆,需要有Graphics对象和Pen对象。Graphics对象提供DrawEllipse方法,Pen对象存储用于呈现椭圆的线条特性,如宽度和颜色。Pen对象作为参数之一传递给DrawEllipse方法。传递给DrawEllipse方法的其余参数指定椭圆的边框。下面的插图显示了一个椭圆,以及它的边框。下面的示例绘制了一个椭圆;边框的宽度为 80,高度为 40,左上角位于 (100, 50):C#VB myGraphics.DrawEllipse

    12、(myPen, 100, 50, 80, 40)DrawEllipse是一种Graphics类的重载方法,因此您可以通过多种方式为它提供参数。例如,您可以构造Rectangle并将Rectangle作为参数传递给DrawEllipse方法:C#VB Dim myRectangle As New Rectangle(100, 50, 80, 40) myGraphics.DrawEllipse(myPen, myRectangle)绘制弧线弧线是椭圆的一部分。若要绘制弧线,可调用Graphics类的DrawArc方法。除了DrawArc需要有起始角度和仰角以外,DrawEllipse方法的参数与

    13、DrawArc方法的参数相同。下面的示例绘制了一个起始角为 30 度、仰角为 180 度的弧线:C#VB myGraphics.DrawArc(myPen, 100, 50, 140, 70, 30, 180)下面的插图显示了弧线、椭圆和边框。GDI+ 中的多边形.NET Framework 4.5其他版本多边形是有三条或更多直边的闭合图形。例如,三角形是有三条边的多边形,矩形是有四条边的多边形,五边形是有五条边的多边形。下面的插图显示了几个多边形。绘制多边形若要绘制多边形,需要Graphics对象、Pen对象和Point(或PointF)对象数组。Graphics对象提供DrawPolygo

    14、n方法。Pen对象存储用于呈现多边形的线条特性,例如宽度和颜色,Point对象数组存储将由直线连接的点。Pen对象和Point对象数组作为参数传递给DrawPolygon方法。下面的示例绘制了一个三条边的多边形。请注意,myPointArray中只有三个点:(0, 0)、(50, 30) 和 (30, 60)。DrawPolygon方法通过绘制一条从 (30, 60) 回到起点 (0, 0) 的直线来自动闭合多边形。C#VB Dim myPointArray As Point() = _ New Point(0, 0), New Point(50, 30), New Point(30, 60)

    15、 myGraphics.DrawPolygon(myPen, myPointArray)下面的插图显示了该多边形。GDI+ 中的基数样条.NET Framework 4.5其他版本基数样条是一连串单独的曲线,这些曲线连接起来形成一条较大的曲线。样条由点的数组和张力参数指定。基数样条平滑地经过数组中的每个点;曲线的陡度上没有尖角和突然的变化。下面的插图显示了一组点和经过这一组点中每一点的基数样条。物理和数学样条物理样条是一块薄木片或其他有弹性的物质。在数学样条出现之前,设计者利用物理样条绘制曲线。设计者把样条放置在一张纸上并锚定到一组给定的点上。然后,设计者就可以用钢笔沿样条绘制出一条曲线。一组

    16、给定的点可以产生各种各样的曲线,这取决于物理样条的属性。例如,极不易弯曲的样条与非常有弹性的样条产生的曲线是不同的。数学样条的公式基于弹性棒条的属性,因此数学样条产生的曲线与物理样条曾产生的曲线是相同的。正如不同张力的物理样条通过一组给定的点将产生不同的曲线一样,张力参数值不同的数学样条在一组给定的点上将产生不同的曲线。下面的插图显示了经过同一组点的四个基数样条。每个样条都显示了张力。0 张力相当于无穷的物理张力,以强制曲线在点与点之间采取最短的路径(直线)。张力为 1 对应于没有物理张力,使样条采用最小完全弯曲的路径。张力值大于 1 的曲线就像压缩的弹簧,被挤压着采用较长的路径。上面插图中的

    17、四个样条共享起点处的同一条切线。该切线是从起始点到沿着曲线的下一点绘制的一条线。同样,在结束点处共享的切线是从结束点到沿着曲线的上一点绘制的一条线。若要绘制基数样条,需要Graphics类的实例、Pen和Point对象数组。Graphics类的实例提供了DrawCurve方法以用于绘制样条,而Pen存储样条的特性(如线宽和颜色)。Point对象数组存储曲线将要经过的点。下面的代码示例演示如何绘制经过myPointArray中的点的基数样条。第三个参数是张力。C#VB myGraphics.DrawCurve(myPen, myPointArray, 1.5F)GDI+ 中的贝塞尔样条.NET

    18、Framework 4.5其他版本贝塞尔样条是由四个点指定的曲线:两个端点(p1 和 p2)和两个控制点(c1 和 c2)。曲线开始于 p1,结束于 p2。该曲线不经过控制点,但是控制点的作用像磁铁一样,在某些方向上拉拽曲线并影响曲线弯曲的方式。下面的插图显示一个贝塞尔曲线及其端点和控制点。该曲线始于 p1 并向控制点 c1 移动。该曲线 p1 处的切线是从 p1 到 c1 绘制的线。端点 p2 处的切线为从 c2 到 p2 绘制的线。绘制贝塞尔样条若要绘制贝塞尔样条,需要Graphics类的实例和Pen。Graphics类的实例提供DrawBezier方法,而Pen存储用于呈现曲线的线的特性

    19、,如宽度和颜色。将Pen作为参数之一传递给DrawBezier方法。传递给DrawBezier方法的其他参数是端点和控制点。下面的示例绘制了一个贝塞尔样条:起点为 (0, 0),控制点为 (40, 20) 和 (80, 150),终点为 (100, 10):C#VB myGraphics.DrawBezier(myPen, 0, 0, 40, 20, 80, 150, 100, 10)下面的插图显示了曲线、控制点和两条切线。贝塞尔样条最初是由 Pierre Bzier 为汽车行业设计而提出的。许多类型的计算机辅助设计都证明了它们十分有用,它们也用于定义字体的轮廓。贝塞尔样条可生成各种各样的形状

    20、,下面的插图显示了其中的一部分。GDI+ 中的图形路径.NET Framework 4.5其他版本路径是通过组合直线、矩形和简单的曲线而形成的。请回忆一下向量图形概述中的内容,以下基本构造块已被证明对于绘制图形是非常有用的: 行 矩形 椭圆 弧线 多边形 基数样条 贝塞尔样条在 GDI+ 中,GraphicsPath对象您允许将这些构造块序列收集到一个单元中。调用一次Graphics类的DrawPath方法,就可以绘制出整个序列的直线、矩形、多边形和曲线。下面的插图显示了通过组合一条直线、一段弧、一个贝塞尔样条和一个基数样条而创建的路径。使用路径GraphicsPath类提供了下列方法来创建要

    21、绘制的项序列:AddLine、AddRectangle、AddEllipse、AddArc、AddPolygon、AddCurve(针对基数样条)和AddBezier。这些方法中的每一种都是重载的,即每种方法都支持几个不同的参数列表。例如,AddLine方法的一个变体接收四个整数,AddLine方法的另一个变体则接收两个Point对象。将直线、矩形和贝塞尔样条添加到路径的方法具有多个伴随方法,这些伴随方法在一次调用中将多个项添加到路径:AddLines、AddRectangles和AddBeziers。同样,AddCurve和AddArc方法也有几个将闭合的曲线或扇形添加到路径的伴随方法:Ad

    22、dClosedCurve和AddPie。若要绘制路径,需要Graphics对象、Pen对象和GraphicsPath对象。Graphics对象提供DrawPath方法,Pen对象存储用于呈现路径的线条特性,如宽度和颜色。GraphicsPath对象存储构成路径的直线和曲线序列。Pen对象和GraphicsPath对象作为参数传递给DrawPath方法。下面的示例绘制了由直线、椭圆和贝塞尔样条组成的路径:C#VB myGraphicsPath.AddLine(0, 0, 30, 20) myGraphicsPath.AddEllipse(20, 20, 20, 40) myGraphicsPat

    23、h.AddBezier(30, 60, 70, 60, 50, 30, 100, 10) myGraphics.DrawPath(myPen, myGraphicsPath)下面的插图显示了该路径。除了向路径添加直线、矩形和曲线外,还可以向路径添加路径。这就允许您合并现有的路径来形成大型复杂路径。C#VB myGraphicsPath.AddPath(graphicsPath1, False) myGraphicsPath.AddPath(graphicsPath2, False)您还可以把其他两个项目加入路径:字符串和扇形。扇形是椭圆内的一部分。下面的示例用弧形、基数样条、字符串和扇形创建了

    24、路径:C#VB Dim myGraphicsPath As New GraphicsPath() Dim myPointArray As Point() = _ New Point(5, 30), _ New Point(20, 40), _ New Point(50, 30) Dim myFontFamily As New FontFamily(Times New Roman) Dim myPointF As New PointF(50, 20) Dim myStringFormat As New StringFormat() myGraphicsPath.AddArc(0, 0, 30,

    25、20, -90, 180) myGraphicsPath.StartFigure() myGraphicsPath.AddCurve(myPointArray) myGraphicsPath.AddString(a string in a path, myFontFamily, _ 0, 24, myPointF, myStringFormat) myGraphicsPath.AddPie(230, 10, 40, 40, 40, 110) myGraphics.DrawPath(myPen, myGraphicsPath)下面的插图显示了该路径。请注意,不必连接路径;弧形、基数样条、字符串和

    26、扇形都是分开的。GDI+ 中的画笔和实心形状.NET Framework 4.5其他版本闭合的形状(例如,矩形或椭圆)由轮廓和内部组成。使用钢笔绘制出轮廓,并用画笔填充其内部。GDI+ 提供了几种填充闭合形状内部的画笔类:SolidBrush、HatchBrush、TextureBrush、LinearGradientBrush和PathGradientBrush。所有这些类都是从Brush类继承的。下面的插图显示了用实心画笔填充的矩形和用阴影画笔填充的椭圆。实心画笔若要填充闭合的形状,需要Graphics类的实例和Brush。Graphics类的实例提供方法,如FillRectangle和F

    27、illEllipse,而Brush存储填充的特性,如颜色和模式。Brush作为参数之一传递给填充方法。下面的代码示例演示如何用纯红色填充椭圆。C#VB Dim mySolidBrush As New SolidBrush(Color.Red) myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40)说明在前面的示例中,画笔为SolidBrush类型,该类型从Brush继承。阴影画笔用阴影画笔填充图形时,要指定前景色、背景色和阴影样式。前景色是阴影的颜色。C#VB Dim myHatchBrush As _ New HatchBrush(HatchSt

    28、yle.Vertical, Color.Blue, Color.Green)GDI+ 提供 50 多种阴影样式;在下面的插图中显示的三种样式为:Horizontal、ForwardDiagonal和Cross。纹理画笔有了纹理画笔,您就可以用位图中存储的图案来填充图形。例如,假定下面的图片存储在名为MyTexture.bmp的磁盘文件中。下面的代码示例演示了如何通过重复存储在MyTexture.bmp中的图片来填充椭圆。C#VB Dim myImage As Image = Image.FromFile(MyTexture.bmp) Dim myTextureBrush As New Text

    29、ureBrush(myImage) myGraphics.FillEllipse(myTextureBrush, 0, 0, 100, 50)下面的插图显示已填充的椭圆。渐变画笔GDI+ 提供两种渐变画笔:线性和路径。您可以使用线性渐变画笔来用颜色(在您横向、纵向或斜向移过图形时会逐渐变化的颜色)填充图形。下面的代码示例演示如何用水平渐变画笔填充一个椭圆,当从椭圆的左边缘向右边缘移动时,画笔颜色会由蓝变为绿。C#VB Dim myLinearGradientBrush As New LinearGradientBrush( _ myRectangle, _ Color.Blue, _ Colo

    30、r.Green, _ LinearGradientMode.Horizontal) myGraphics.FillEllipse(myLinearGradientBrush, myRectangle)下面的插图显示已填充的椭圆。路径渐变画笔可配置为当您从图形中心向边缘移动时颜色随之改变。路径渐变画笔非常灵活。用于填充下面插图中三角形的渐变画笔,颜色从中心由红色开始到顶点逐渐变为三种不同的颜色。请参见任务如何:在 Windows 窗体上绘制实心矩形如何:在 Windows 窗体上绘制实心椭圆参考System.Drawing.SolidBrushSystem.Drawing.Drawing2D.HatchBrushSystem.Drawing.TextureBrushSystem.Drawing.Drawing


    注意事项

    本文(直线曲线和图形.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开