時計の出力には満足していますが、時計drawString
の各目盛りの先端に表示される数字を適切に調整する方法がわかりません。私は誰かがこれのための適切な方法/式を示すことができるかもしれないことを望んでいます。
private void drawTickMarks(Graphics2D g2)
{
double radius = this.faceRadius;
for (int secs = 0; secs <= 60; secs++)
{
double tickStart;
if (secs % 5 == 0)
tickStart = radius - 15;
else
tickStart = radius - 5;
tick = drawRadii(secs / 60.0, tickStart, radius);
if (secs % 5 == 0)
{
g2.setStroke(new BasicStroke(3));
g2.drawString(""+(secs/5),(int)tick.getX1()+(int)(tick.getX1()-tick.getX2()),
(int)tick.getY1()+(int)(tick.getY1()-tick.getY2()));
}
else
g2.setStroke(new BasicStroke(1));
g2.setColor(Color.WHITE);
g2.draw(tick);
}
}
コードを使用した有効で正しいソリューションを提供してくれたThinhbkと、ソリューションを実現するための適切な手順を提供してくれたJonWに感謝します。