c#的graphicspath是图形还是路径?

graphicspath是图形还是路径,如果是路径,那么由谁来绘制图形呢?c#新手,多有打扰。。。先谢谢了。... graphicspath是图形还是路径,如果是路径,那么由谁来绘制图形呢?c#新手,多有打扰。。。先谢谢了。 展开
 我来答
dong_1984dd
推荐于2017-05-24 · TA获得超过1.1万个赞
知道小有建树答主
回答量:1070
采纳率:100%
帮助的人:230万
展开全部
  1. GraphicsPath  是类 ,但是相对于图形还是路径,它比较偏向路径

  2. GraphicsPath对象
       它由一系列相互连接的直线、曲线连接起来组成的开放(非闭合)图形。
       创建路径时就会隐式创建一个新图形(由上面的直线、曲线等组成)。也可以
                     显示地声明StartFigure。      
       图形具有方向,其先后顺序加入的直线、曲线等就表明了次序。
       一般图形路径是开放的,由起点,到最后图形(终点)。也可以用ClosedFigure显式  声明为闭合图形(比如填充和剪辑时要用)

  3. 路径
       GraphicsPath 允许将各种形状收集到一个单独的单元(如同集合一样)中。
       它用AddLine,AddCurve、AddClosedCurve、AddPie等来添加形状。

        而且路径还可添加到另一个路径中去,形成大型复杂路径。
               myGPath.AddPath(gp1,False)
       
        最后绘制路径:DrawPath(Pen,GP)

  4. GraphicsPath方法
       ClearMarkers   清除路径的所有标记
       SetMarkers     在GraphicsPath上设置标记

       CloseFigure    闭合当前图形,开始新图
       CloseAllFigure 闭合所有开放图形,开始新图

       Flatten        将此路径中的各段曲线转换成相连的线段序列
       GetBounds      返回限定此GraphicsPath对象的矩形(外沿)

       InitializeLifetimeService  获取控制此实例的生存期策略的生存期服务对象。
       IsVisible      指示指定点是否此GraphicsPath对象内

       IsOutlineVisible  指示当使用指定Pen对象绘制此GraphicsPath对象时,指定点
                         是否包含在后者的轮廓内(下)
       Reset          清空PathPoints和PathTypes数组并将FillMode设置为Alernate
       Reverse        反转GraphicsPath对象PathPoints数组各点顺序

       Transform      将变形矩形应用到此GraphicsPath对象
       Warp           对此GraphicsPath对象应用由一个矩形和一个平等四边形定义的扭曲变形
       Widen          在用指定的画笔绘制此路径时,用包含所填充区域的曲线代替此路径

  5. 轨迹梯度刷
       GraphicsPath按先后(轨迹)次序维护一系列线条和曲线。
       PathGradientBrush路径渐变刷,在中心点可定义颜色,边沿还可按轨迹分别指定颜色

  6. C#使用GraphicsPath的AddString方法示例代码如下:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Drawing.Drawing2D;
    namespace advanced_drawing
    {
        public partial class Form14 : Form
        {
            public Form14()
            {
                InitializeComponent();
            }

            private void Form14_Paint(object sender, PaintEventArgs e)
            {
                // Create a GraphicsPath object.
                GraphicsPath myPath = new GraphicsPath();

               // Set up all the string parameters.
                string stringText = "Sample Text";
                FontFamily family = new FontFamily("Arial");
                int fontStyle = (int)FontStyle.Italic;
                int emSize = 26;
                Point origin = new Point(20, 20);
                StringFormat format = StringFormat.GenericDefault;

                // Add the string to the path.
                myPath.AddString(stringText,
                    family,
                    fontStyle,
                    emSize,
                    origin,
                    format);

                //Draw the path to the screen.
                e.Graphics.FillPath(Brushes.Black, myPath);

            }
        }
    }

帐号已注销
2013-03-15 · TA获得超过2184个赞
知道小有建树答主
回答量:631
采纳率:100%
帮助的人:645万
展开全部
graphicspath是一个类,通过它建立一个graphicspath对象,用自带的方法添加各种几何图形,需要的时候一并显示,而不用一条一条的话。
graphicspath很强大,就我的理解是它可以记录下来你绘图的过程,最后一起画出来。
由于我是使用c#编程的,对指针很模糊。gdi+画图,c#的效率是一个问题。如果你要画的东西少,那么你可以一个一个画。但是如果多的话,效率很成问题!我在做一个工程的时候,一个form上要画1500多条直线。如果做个循环再画,那么根本就不刷新了,一直卡在那里。
而graphicspath就不会了,你可以使用它的addline()或者addlines()方法。我使用的是addlines()方法,它的参数是一个point数组,这个方法是指连在一起的线。

我这里有个使用graphicspath的例子,共参考。

[Csharp] view plaincopyprint?
g.SmoothingMode = SmoothingMode.AntiAlias;
Point[] p1 = new Point[]{
new Point(0,0),
new Point(0,100),
new Point(100,100),
new Point(100,0),
new Point(200,10),
new Point(100,200)
};
GraphicsPath gPath1= new GraphicsPath();
gPath1.AddLines(p1);
g.DrawPath(new Pen(Color.Black), path);<pre>效果如图:</pre><pre> </pre><pre><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/wwei466/EntryImages/20080724/1633525173887236250.jpg">g</pre><pre>raphicspath 还有一个优点,就是它可以添加其他的graphicspath,并且一次绘出。这个优点太棒了。</pre><pre>方法是addPath();可以设置graphicspath之间是否需要连接。</pre><pre>eg:</pre><pre>代码:</pre><pre> </pre><pre class="Csharp" name="code">g.SmoothingMode = SmoothingMode.AntiAlias;
Point[] p1 = new Point[]{
new Point(0,0),
new Point(0,100),
new Point(100,100),
new Point(100,0),
new Point(200,10),
new Point(100,200)
};
Point[] p2 = new Point[]{
new Point(10,10),
new Point(10,90),
new Point(90,90),
new Point(90,10),new Point(10,10),
};
GraphicsPath gPath1= new GraphicsPath();
gPath1.AddLines(p1);

GraphicsPath gPath2 = new GraphicsPath();
gPath2.AddLines(p2);
GraphicsPath path = new GraphicsPath();
path.AddPath(gPath1, false);
path.AddPath(gPath2, false);
g.DrawPath(new Pen(Color.Black), path)<pre></pre></pre><pre>如上可以看出,addPath方法有两个参数,其中第二个就是设置是否连接的。</pre><pre>废话少说看效果:</pre><pre><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/wwei466/EntryImages/20080724/2.jpg"></pre><pre>如果,第二个参数为true,效果如图:</pre><pre><img alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/wwei466/EntryImages/20080724/3.jpg"></pre>
------------------------------------------------------------------------------
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
RXC55555
2013-03-15 · TA获得超过135个赞
知道小有建树答主
回答量:121
采纳率:0%
帮助的人:117万
展开全部
graphicspath是类。
表示一系列相互连接的直线和曲线。无法继承此类。
应用程序使用路径来绘制形状的轮廓、填充形状内部和创建剪辑区域。图形引擎在世界坐标空间中维护路径内的几何形状的坐标。
路径可由任意数目的图形(子路径)组成。每一图形都是由一系列相互连接的直线和曲线或几何形状基元构成的。图形的起始点是相互连接的一系列直线和曲线中的第一点。终结点是该序列中的最后一点。几何形状基元的起始点和终结点都是由基元规范定义的。
由一系列相互连接的直线和曲线构成的图形(其起始点和终结点可以是同一点)是开放的图形,除非它被显式闭合。可以通过使用 CloseFigure 方法显式闭合一个图形,这通过连接一条从终结点到起始点的直线闭合当前图形。由几何形状基元构成的图形是闭合的图形。
为进行填充和剪辑(例如,如果使用 FillPath 呈现一个路径),通过添加一条从该图形的起始点到其终结点的直线来闭合所有开放的图形。
当创建路径或当闭合图形时,即隐式开始一个新图形。当调用 StartFigure 方法时,新图形是显式的。
在将几何形状基元添加到路径时,它添加包含几何形状的图形,并且还隐式开始一个新图形。因此,在路径中始终有一个当前图形。在将直线和曲线添加到路径中时,根据需要添加一条隐式直线以将当前图形的终结点连接到新直线和曲线的起始点,从而构成一系列相互连接的直线和曲线。
图形具有方向,方向描述在起始点和终结点之间绘制直线段和曲线段的方式。方向按将直线和曲线添加到图形的顺序定义,或者按几何形状基元定义。方向用来确定剪辑和填充的路径内部。

graphicspath用来存储图形的,graphics是画图形的

参考资料: http://msdn.microsoft.com/zh-cn/library/system.drawing.drawing2d.graphicspath(VS.80).aspx

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6db8a1bce
2013-03-16 · 超过31用户采纳过TA的回答
知道答主
回答量:140
采纳率:0%
帮助的人:83.1万
展开全部
它是一个路径,它也类似于一个画布,可以在这个画布中添加各种样式的路径。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuhu_Xuw
2013-03-15 · 超过26用户采纳过TA的回答
知道答主
回答量:74
采纳率:100%
帮助的人:67万
展开全部
我个人觉得,这个类表示的是一个图形的边线路径,不知道这样说你明白不?比如说 一个足球,那用这个类来表示的时候,就是一个空心的圆形,就是这样:○
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式