Java: ¿la precisión de la línea de subpíxeles requiere una AffineTransform?

Nunca antes había trabajado con métodos de dibujo Java, así que decidí sumergirme y crear un reloj analógico como PoC. Además de las manecillas, dibujo una esfera del reloj que incluye marcas de verificación por minutos / horas. Utilizo cálculos sencillos / cos para determinar la posición de las líneas alrededor del círculo.

Sin embargo, me he dado cuenta de que, dado que las pequeñas marcas son muy cortas, el ángulo de las líneas se ve mal. Estoy seguro de que esto se debe a que ambosGraphics2D.drawLine() yLine2D.double()os métodos @ no pueden dibujar con una precisión de subpíxeles.

Sé que puedo dibujar líneas que se originan en el centro y enmascararlas con un círculo (para crear líneas más largas y precisas), pero esa parece una solución tan poco elegante y costosa. He investigado un poco sobre cómo hacer esto, pero la mejor respuesta que he encontrado es usar unAffineTransform. Supongo que podría usar unaAffineTransform solo con rotación, en lugar de tener que realizar un supermuestreo.

¿Es este el único / mejor método de dibujar con precisión subpíxel? ¿O hay una solución potencialmente más rápida?

Edita: Ya estoy configurando unaRenderingHint alGraphics2D objeto.

egún lo solicitado, aquí hay un poco del código (no completamente optimizado ya que esto era solo un PoC):

diameter = Math.max(Math.min(pnlOuter.getSize().getWidth(),
                             pnlOuter.getSize().getHeight()) - 2, MIN_DIAMETER);

for (double radTick = 0d; radTick < 360d; radTick += 6d) {
   g2d.draw(new Line2D.Double(
      (diameter / 2) + (Math.cos(Math.toRadians(radTick))) * diameter / 2.1d,
      (diameter / 2) + (Math.sin(Math.toRadians(radTick))) * diameter / 2.1d,
      (diameter / 2) + (Math.cos(Math.toRadians(radTick))) * diameter / 2.05d,
      (diameter / 2) + (Math.sin(Math.toRadians(radTick))) * diameter / 2.05d));
} // End for(radTick)

Aquí hay una captura de pantalla del dibujo. Puede ser algo difícil de ver, pero observe la marca de verificación durante 59 minutos. Es perfectamente vertical.

Respuestas a la pregunta(1)

Su respuesta a la pregunta