1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| StringFormat drawFormat = new StringFormat();
drawFormat.Alignment = StringAlignment.Center;
drawFormat.LineAlignment = StringAlignment.Center;
string s = iValue.ToString();
SizeF szs = g.MeasureString(s, font);
PointF ptx = GetPosition(ptCentre,szs,fAngle,fSweep,W_2);
g.DrawString(s, font, Brushes.Black, ptx,drawFormat);
private static PointF GetPosition(PointF ptCentre, SizeF szs, float fAngle, float fSweep, float rayon)
{
double x, y;
double rad = ((fAngle+(fSweep/2)) * Math.PI) / 180.0f;
rayon +=szs.Width/ 2;
x = Math.Cos(rad) * rayon;
y = Math.Sin(rad) * rayon;
x+=ptCentre.X;
y+= ptCentre.Y;
PointF pt = new PointF((float)x,(float)y);
return pt;
} |
Partager