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

Curves drawn at extremely large scales can degenerate into straight lines

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P4 P4
    • None
    • 1.2.1
    • client-libs
    • None
    • 2d
    • x86
    • windows_nt

      Name: gsC80088 Date: 01/20/99


      // This program draws two ellipses by the SAME
      // operators:
      // g2D.draw( new Ellipse2D.Double( r, r, 3 * r, 3 * r ) );
      // One of them in PINT mode, another in XOR.
      // As the result you can see one ellipse and one
      // RECTANGLE?!
      //
      // I guess something wrong with scale calculation
      // in XOR mode.

      import java.awt.*;
      import java.awt.geom.*;
      import javax.swing.*;


      class TestComponent extends JComponent
      {
      public void paint( Graphics g )
      {
      Graphics2D g2D = ( Graphics2D ) g;

      double scale = 10000.;
      float r = 0.007f;

      g2D.setColor( Color.white );
      g2D.fill( new Rectangle2D.Double( 0., 0., 500., 500. ) );

      g2D.setColor( Color.red );
      g2D.scale( scale, scale );

      g2D.setStroke( new BasicStroke( ( float )( 1. / scale ) ) );

      g2D.draw( new Ellipse2D.Double( r, r, 3 * r, 3 * r ) );

      g2D.setXORMode( Color.green );

      g2D.draw( new Ellipse2D.Double( r, r, 3 * r, 3 * r ) );
      }
      }


      public class test
      {
      static public void main( String [] args )
      {
      JFrame frame = new JFrame();
      frame.setContentPane( new TestComponent() );


      frame.setSize( 500, 500 );
      frame.show();
      }
      }
      (Review ID: 52396)

            Unassigned Unassigned
            flar Jim Graham
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Imported:
              Indexed: