在 360 度圆上写 Text/Values

Write Text/Values On 360 degree Circle

我正在设计轮图,我需要帮助定位 360 度轮上的文字。

轮子有12节,每节30度。文本与圆圈外线的偏移量应该相等(或至少相似)。如下图所示,我模拟了最终结果中需要的内容。

到目前为止,我尝试将每个部分拆分为单独的变量,例如

$section1_startX = 50;
$section1_endX = 70;
$section1_startY = 310;
$section1_endY = 480;

然后放置文字

imagettftext($im, 15, 0, $section1_startX, $section1_startY, $black, $font, "05");

但这是我需要放置的每行的 find/calculate 像素。

我相信有更好的、动态的和聪明的方法可以根据文本在 360 度圆中的值将文本放置在 x、y 位置。

你能帮我解决一下吗?

嗨,我想你想在给定圆上找到给定度数的点。这是一个计算圆上点的函数。我认为您可以轻松地将其转换为任何其他语言。

public static PointF PointOnCircle(float radius, float angleInDegrees, Point origin)
{
    //radius -> Radius of Circle & Origin -> Circle Centre.
    // Convert from degrees to radians via multiplication by PI/180        
    float x = (float)(radius * Math.Cos(angleInDegrees * Math.PI / 180F)) + origin.X;
    float y = (float)(radius * Math.Sin(angleInDegrees * Math.PI / 180F)) + origin.Y;

    return new PointF(x, y);
}