Asi lo hago
Código Delphi
[-] TextOut(Offset + round(-x * (RadiusOuter - l - lplus * occupied[deg]))+ RadiusOuter - space.cx div 2,
Offset + round( y * (RadiusOuter - l - lplus * occupied[deg]) + RadiusOuter - space.cy div 2), what);
Pero no veo como hacer para que no ocurra el overlap