import java.awt.* ;

public class Oct27 {
  static final int winderSize = 512 ;
  static final int borderSize = 32 ;
  static final int swatchSize = winderSize-2*borderSize ;
  static final Color winderColor = new Color(  0, 200, 200) ;
  static final Color swatchColor = new Color(200, 200,   0) ;
  
  private static Picture demoPicture() {
    // return new Picture(winderSize, winderSize, winderColor) ;
    Picture  p = new Picture(winderSize, winderSize) ;
    p.setAllPixelsToAColor(winderColor) ;
    return p ;
  }
  
  private static void fillRectDemo() {
    Picture  p = demoPicture() ;
    Graphics g = p.getGraphics() ;
    g.setColor(swatchColor) ;
    g.fillRect(borderSize, borderSize, swatchSize, swatchSize) ;
    p.show() ;
    p.setTitle("fillRect") ;
  }

  private static void fillOvalDemo() {
    Picture  p = demoPicture() ;
    Graphics g = p.getGraphics() ;
    g.setColor(swatchColor) ;
    g.fillOval(borderSize, borderSize, swatchSize, swatchSize) ;
    p.show() ;
    p.setTitle("fillOval") ;
  }

  
  private static void fillArc0to120Demo() {
    Picture  p = demoPicture() ;
    Graphics g = p.getGraphics() ;
    g.setColor(swatchColor) ;
    g.fillArc(borderSize, borderSize, swatchSize, swatchSize, 0, 120) ;
    p.show() ;
    p.setTitle("fillArc(...,0,120)") ;
  }
  
  private static void fillArc120to240Demo() {
    Picture  p = demoPicture() ;
    Graphics g = p.getGraphics() ;
    g.setColor(swatchColor) ;
    g.fillArc(borderSize, borderSize, swatchSize, swatchSize, 120, 120) ;
    p.show() ;
    p.setTitle("fillArc(...,120,120)") ;
  }

  private static void fillArc240to360Demo() {
    Picture  p = demoPicture() ;
    Graphics g = p.getGraphics() ;
    g.setColor(swatchColor) ;
    g.fillArc(borderSize, borderSize, swatchSize, swatchSize, 240, 120) ;
    p.show() ;
    p.setTitle("fillArc(...,240,120)") ;
  }
  
  private static void fillTriangleDemo() {
    int[] xPoints = new int[3] ;
    int[] yPoints = new int[3] ;
    xPoints[0] = winderSize/2 ;
    yPoints[0] = borderSize ;
    xPoints[1] = (int)Math.round(winderSize/2.0 + (Math.sqrt(3)*swatchSize/4)) ;
    yPoints[1] = (2*winderSize + swatchSize+2)/4 ;
    xPoints[2] = winderSize - xPoints[1] ;
    yPoints[2] = yPoints[1] ;
    
    Picture  p = demoPicture() ;
    Graphics g = p.getGraphics() ;
    g.setColor(swatchColor) ;
    g.fillPolygon(xPoints, yPoints, 3) ;
    p.show() ;
    p.setTitle("fillPolygon") ;    
  }
  
  public static void main(String[] args) {
    fillRectDemo() ;
    fillOvalDemo() ;
    fillArc0to120Demo() ;
    fillArc120to240Demo() ;
    fillArc240to360Demo() ;
    fillTriangleDemo() ;
  }
}

  
  