Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
画不相交的饼图C#_C#_Drawing - Fatal编程技术网

画不相交的饼图C#

画不相交的饼图C#,c#,drawing,C#,Drawing,我想要60个5度的馅饼片,每个有1度的间隔。然而,使用下面的代码,结果看起来像下面的图像,中间有一个大的黑色中心,我是否可以修改代码来避免这种情况 Graphics g = panel1.CreateGraphics(); // Create pen. Pen blackPen = new Pen(Color.Black, 1); // Create rectangle for ellipse. //RectangleF rect = new Rect

我想要60个5度的馅饼片,每个有1度的间隔。然而,使用下面的代码,结果看起来像下面的图像,中间有一个大的黑色中心,我是否可以修改代码来避免这种情况

    Graphics g = panel1.CreateGraphics();

    // Create pen.
    Pen blackPen = new Pen(Color.Black, 1);

    // Create rectangle for ellipse.
    //RectangleF rect = new RectangleF(150.0F, 10.0F, 200F, 300.0F);

    // Create start and sweep angles.
    float startAngle = 270F;
    float sweepAngle = 4F;


    for (int i = 0; i < 60; i++ )
    {
        RectangleF rect = new RectangleF(50F, 10.0F, 200F, 200F);
        startAngle = startAngle + 6F;
        g.DrawPie(blackPen, rect, startAngle, sweepAngle);
        //start = start + 1f;
    }

Graphics g=panel1.CreateGraphics();
//创建钢笔。
钢笔黑色钢笔=新钢笔(Color.Black,1);
//为椭圆创建矩形。
//矩形F矩形=新矩形F(150.0F、10.0F、200F、300.0F);
//创建起始角和扫掠角。
浮式星形缠绕=270F;
浮动扫掠角=4F;
对于(int i=0;i<60;i++)
{
矩形F矩形=新矩形F(50F,10.0F,200F,200F);
startAngle=startAngle+6F;
g、 DrawPie(黑笔、矩形、星形、扫掠角);
//启动=启动+1f;
}

这种效果称为莫尔图案


为了避免这种情况,请增大切片之间的距离。数量取决于饼图的大小和显示分辨率。为了使距离更大,你可以画一个更大的饼,但你会发现切片将争夺像素。你可以接受这种效果,也可以将切片向外推。

你会让它做什么?只有这么多的像素可用,而且大多数像素都被至少一个单独的切片绘制成黑色。正常情况下,中心是黑色的。试着用笔在纸上画画,你会看到同样的结果。你可以把你的切片变短,但是你会发现你的馅饼上有一个白色区域。请不要在你的帖子上签名。看见