这是C的中点画圆算法
    void circlepoints (int x,int y,int color)
  {
     drawpixel(x,y,color);drawpixel(y,x,color);
     drawpixel(-x,y,color);drawpixel(y,-x,color);
     drawpixel(x,-y,color);drawpixel(-y,x,color);
     drawpixel(-x,-y,color);drawpixel(-y,-x,color);
}
      midpointcricle(int r,int color)
      {
          int x,y;
           float d;
           x=0;y=r;d=1.25-r;
         circlepoints(x,y,color);
       while(x<=y)
       {
       if(d<0)
          d+=2*x+3;
          else           {d+=s*(x-y)+5;y--};
          x++;
        criclepoints(x,y,color);        }
}
怎么把他装换为C#的?麻烦大家帮下忙.......

解决方案 »

  1.   

            /// <summary>
            /// 中心画圆
            /// </summary>
            /// <param name="g"></param>
            /// <param name="x">中点的X坐标</param>
            /// <param name="y">中点的Y坐标</param>
            /// <param name="r">半径</param>
            /// <param name="color">线条颜色</param>
            void circlepoints(Graphics g, int x, int y, int r,Color color)
            {
                g.DrawEllipse(new Pen(color), new Rectangle(x - r, y - r, r * 2, r * 2));
            }
      

  2.   

    这个drawpixel是C里面的特有的吧?你想让C#也调用这个吗?
      

  3.   

    drawpixel是C里面的特有,所以我不知道在C#里面要换成什么
    大家帮忙啊
      

  4.   

    ??
    晕,不调用gdi+,我们怎么把点画出来,难道让我用“*”表示,还是你让我用api画
      

  5.   

     drawpixel函数等同api SetPixelV
    [DllImport("gdi32.dll", EntryPoint = "SetPixelV")]
            public static extern int SetPixelV(
                IntPtr hdc,
                int x,
                int y,
                int crColor
            );其他的,你自己看着办。有关hdc,你可以
        private void mainForm_Paint(object sender, PaintEventArgs e)
            {
                var g = e.Graphics;
              
                var hdc = g.GetHdc(); //获取hdc            var color = Color.Red.ToArgb(); //设置颜色
                    //
           这中间写你自己的函数,画点函数为 SetPixelV(hdc,x,y,color);
        //
                g.ReleaseHdc(hdc);//释放hdc
                
                
            }
      

  6.   

    不用GDI+,为什么? graphic不是有个SetPixel方法么?