问题描述
谁能向我解释这种行为的原因是什么?
问题是,从“off”到“2”总是完美地显示在我给定的半径之上。 半径是圆半径的 +35。
现在当我写数字时,随着数字的下降,它开始变得混乱。
就字母而言,它接触边缘并重叠。
谁能告诉我这是什么原因?因为半径总是大于当前圆的半径,所以字母应该类似于“关闭”。
xy 点的计算...
// Angles are in radians.
val startAngle = Math.PI * (9 / 8.0)
val angle = startAngle + pos.ordinal * (Math.PI / 4)
x = (radius * cos(angle)).toFloat() + width / 2
y = (radius * sin(angle)).toFloat() + height / 2
我玩弄了度数,似乎越接近 0 度数就开始混乱,随着度数的增加,它不断增加半径的空间。
在这里说明...我想知道是什么导致了这种行为,或者只是解释其背后的原因/数学。谢谢
解决方法
从评论看来您正在关注此代码实验室代码 https://github.com/google-developer-training/android-advanced/tree/master/CustomFanController
您只需要考虑文本上升和体面。所以在圆的圆周上画数字
null
以上基于Android Center text on canvas
这确实在正确的位置绘制了文本,但如果文本太大,它会重叠