Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6966746

Dashed lines are broken with certain scaling transforms

    XMLWordPrintable

Details

    • 2d
    • x86
    • linux

    Description

      FULL PRODUCT VERSION :
      java version "1.6.0_18"
      OpenJDK Runtime Environment (IcedTea6 1.8) (fedora-41.b18.fc13-x86_64)
      OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      2.6.33.5-124.fc13.x86_64 #1 SMP Fri Jun 11 09:38:12 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux

      A DESCRIPTION OF THE PROBLEM :
      When dashed lines are drawn with a transform of the form [[n,0],[0,n]] in effect, dashed lines are not drawn properly. The dashes are much longer than they should be.

      The problem is caused by the "symmetric" variable in pisces/Dasher.java, and how it is used when computing dash lengths in lineTo in that same file.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Run provided source.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      White dashed line is drawn on black background where the dashes are about 4 pixels long.
      ACTUAL -
      The dashes are much longer.

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      import java.awt.*;
      import java.awt.geom.*;
      import java.awt.image.*;
      import javax.imageio.*;

      public class TestDBZ extends Frame {

          public static void main(String[] args) {
              BufferedImage bImg = new BufferedImage(512, 512, BufferedImage.TYPE_INT_RGB);
              Graphics2D g2d = (Graphics2D) bImg.getGraphics();

              g2d.setStroke(new BasicStroke(0.1f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 10.0f, new float[] {0.2f, 0.2f}, 0));

              g2d.scale(20, 20);
              g2d.drawLine(1, 1, 10, 10);
              try { ImageIO.write(bImg, "png", new java.io.File("test.png")); } catch (Exception e) {}
          }
      }

      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      This isn't very feasible, but it's the only possibility: don't use transforms.

      Attachments

        Issue Links

          Activity

            People

              flar Jim Graham
              webbuggrp Webbug Group
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                Imported:
                Indexed: