{
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
}
图形效果。