提问人:user7162221 提问时间:1/6/2023 更新时间:1/6/2023 访问量:74
在 Android Canvas 中确定模拟时钟形成中时针的正确角度
Determine correct angle of hour hand in analog clock formation in Android Canvas
问:
我无法为模拟时钟形成的时针找到正确的角度,其他两个角度工作正常,但是小时角在小时时间内不会移动,例如当时间是 12:00 时,时针会在正确的位置,但随着时间的流逝和时间以分钟为单位的增加,时针不会从原来的位置移位,只会在时间是 1:00 时改变它的位置, 在这种情况下请提供帮助。
private fun drawHand(canvas: Canvas, loc: Int, isHour: Boolean) {
val angle = (Math.PI * loc / 30 - Math.PI / 2).toFloat()
val handRadius: Float =
if (isHour) getTextHeight(bigTextSize) * .5f else getTextHeight(bigTextSize) * .9f
canvas.drawLine(
relativePoint,
currentHeight + getTextHeight(bigTextSize),
relativePoint + cos(angle) * handRadius,
currentHeight + getTextHeight(bigTextSize) + sin(angle) * handRadius,
templatePaint
)
}
val c = Calendar.getInstance()
val minute=c[Calendar.MINUTE]
val hour = if (c[Calendar.HOUR_OF_DAY] > 12) c[Calendar.HOUR_OF_DAY] - 12
else c[Calendar.HOUR_OF_DAY]
templatePaint.strokeWidth=5f
drawHand(canvas, c.get(360 * (hour % 12) / 12 ) + ( (minute / 60)), true)
我尝试了开源平台上列出的所有可能的解决方案,但无法实现正确的目标。 可能的解决方案是时针随着时间的流逝而不断移动,因为真正的时钟指针在工作,
答: 暂无答案
评论