已经构成了一个GraphicsPath
这个类中已经放进去了各个互相没有连接的图形,画出来是正常的。其中里面包括洞(或称孤岛)的图形。现在要修改里面的坐标,怎么把里面的各个图形坐标取出来,然后再更改里面的坐标我翻了文档看了只有几个方法,GraphicsPath可以获得一个PointF[],但是这个PointF居然只能取值不能设值,但是文档中看它的.X方法又是包含get和set的,郁闷别的方面我也想不出方法来

解决方案 »

  1.   

    GraphicsPath好象只能将多个图元放入,然后统一画出,不如将每个图元做为一个对象,分开控制
      

  2.   

    楼上讲的各个都是分开来控制的,但是实现上在应用中有些情况是不能分开的。例如一个面中,左边一个圆,右边一个矩形,是属于一个图形对象,但是它们中间是没有任何联系。这个时候需要它们一起处理,点选的时候一起闪烁等等。如果我把它们一起丢进GraphicsPath就可以达到一起来处理它们的效果了,如果分开来做几个对象再分开控制就会麻烦很多了
      

  3.   

    path.PathData.Points
    可以的直接用path.PathPoints可不行
      

  4.   

    多谢楼上老兄。用了PathData.Points后,确实可以对PointF的值进行赋值了但是虽然这样能赋值,却改变的只是那个PointF[]数组里的值,没有把GraphicsPath里的值改变掉啊,这样即使改变了这个值也没什么意义了啊System.Drawing.Drawing2D.GraphicsPath gp = rgn.getPath();
                System.Drawing.PointF[] pts = gp.PathData.Points;
                for(int i=0; i<pts.Length; i++)
                {
                    pts[i].X = (float)(pts[i].X * scaleX);
                    pts[i].Y = (float)(pts[i].Y * scaleY);
                }
    我想这个时候就直接使用上面的gp,这个时候应该gp里面的坐标值已经改变了才行的,但实际上这样的代码gp里的坐标值是没有改变的