Трудно ответить без дополнительной информации, прежде всего мне нужно знать, какие ограничения у вас есть на интервал.
Если вы просто пытаетесь равномерно распределить текст по всему кругу, то что-то вроде этого может сделать трюк для вас;
using System; using System.Drawing; using System.Windows.Forms; namespace CircleText { public partial class Form1 : Form { public Form1() { InitializeComponent(); SizeChanged += (s, e) => Invalidate(); } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); var center = new Point(Width/2, Height/2); var radius = Math.Min(Width, Height) / 3; var text = "ABCDEFGHIJLKMNOPQRSTUVWXYZ"; var font = new Font(FontFamily.GenericSansSerif, 24, FontStyle.Bold); for (var i = 0; i < text.Length; ++i) { var c = new String(text[i], 1); var size = e.Graphics.MeasureString(c, font); var charRadius = radius + size.Height; var angle = (((float)i / text.Length) - 0.25) * 2 * Math.PI; var x = (int)(center.X + Math.Cos(angle) * charRadius); var y = (int)(center.Y + Math.Sin(angle) * charRadius); e.Graphics.TranslateTransform(x, y); e.Graphics.RotateTransform((float)(90 + 360 * angle / (2 * Math.PI))); e.Graphics.DrawString(c, font, Brushes.Red, 0, 0); e.Graphics.ResetTransform(); e.Graphics.DrawArc(new Pen(Brushes.DarkGreen, 2.0f), center.X - radius, center.Y - radius, radius*2, radius*2, 0, 360); } } } }