但我很滿意我的時鐘輸出 - 但我不確定如何正確對齊我的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與代碼和喬恩·W代表來解決的正確步驟的有效和正確的解決方案。
它與你的例子完全一致,只要匹配滴答,但數字是覆蓋滴答...我做錯了x,y位置?我做錯了嗎? g2.drawString(「」+(secs/5),(int)tick.getX1()+ offset [0],(int)tick.getY1()+ offset [1]); – Kairan
我剛更新了代碼。 – Thinhbk