我目前有这段代码来生成安卓手表表盘周围的刻度。
在圆形表盘上生成刻度很好,但在方形表盘上的效果如下所示:
, 我希望它们不是圆形的,而是更适合形状的,例如:
。是否有标准的方法来做这个?我猜我不能再次使用三角函数...
float innerMainTickRadius = mCenterX - 35;
for(int tickIndex = 0; tickIndex < 12; tickIndex++) {
float tickRot = (float) (tickIndex * Math.PI * 2 / 12);
float innerX = (float) Math.sin(tickRot) * innerMainTickRadius;
float innerY = (float) -Math.cos(tickRot) * innerMainTickRadius;
float outerX = (float) Math.sin(tickRot) * mCenterX;
float outerY = (float) -Math.cos(tickRot) * mCenterX;
canvas.drawLine(mCenterX + innerX, mCenterY + innerY, mCenterX + outerX, mCenterY + outerY, mTickPaint);
}
在圆形表盘上生成刻度很好,但在方形表盘上的效果如下所示:
![Round ticks on Square](https://istack.dev59.com/4pGvd.webp)
![Square watchface](https://istack.dev59.com/OQkHm.webp)