{
int PointCount = 15;
Point pCenter = new Point(200,200);
Point pTemp = new Point();
int distance = 50;
Point pStart = new Point(pCenter.X + distance,200);
Pen p = new Pen(Color.Blue, 1);
Graphics g = e;
g.DrawLine(p, pCenter, pStart);
for (int i = 1; i <= PointCount - 2 ; i++)
{
int factor = (i)/4 + 1 ;
switch (i % 4)
{
case 1:
pTemp.X = pStart.X ;
pTemp.Y = pCenter.Y + factor * distance;
g.DrawLine(p,pStart,pTemp);
pStart = pTemp;
break;
case 2:
pTemp.X= pCenter.X + -factor * distance;
pTemp.Y = pCenter.Y + factor * distance;
g.DrawLine(p,pStart,pTemp);
pStart = pTemp;
break;
case 3:
pTemp.X= pCenter.X + -factor * distance;
pTemp.Y = pCenter.Y + -factor * distance;
g.DrawLine(p,pStart,pTemp);
pStart = pTemp;
break;
case 0:
pTemp.X= pCenter.X + factor * distance;
pTemp.Y = pCenter.Y + -(factor-1) * distance;
g.DrawLine(p,pStart,pTemp);
pStart = pTemp;
break;
default:
break;
}
}
// g.DrawLine(p,200,200,200,200); //+0 , +0
// g.DrawLine(p,200,200,250,200); //+50, +0
// g.DrawLine(p,250,200,250,250); //+50, +50
// g.DrawLine(p,250,250,150,250); //-50, +50
// g.DrawLine(p,150,250,150,150); //-50, -50
// g.DrawLine(p,150,150,300,150); //+100,-50
// g.DrawLine(p,300,150,300,300); //+100,+100
// g.DrawLine(p,300,300,100,300); //-100,+100
// g.DrawLine(p,100,300,100,100); //-100,-100
// g.DrawLine(p,100,100,350,100); //+150,-100
// g.DrawLine(p,350,100,350,350); //+150,+150
}
图形效果。

本博客详细解析了一段使用C#进行图形绘制的代码,通过动态生成的15个点,创建了一个围绕中心点展开的复杂图形。代码中运用了循环和条件语句来确定每个点的位置,并用直线连接这些点,展示了如何利用基本的绘图函数实现图形的绘制。
877

被折叠的 条评论
为什么被折叠?



