//Brad Culberson 04.23.98
//Draws lines in random colors with a little twist.

import java.awt.*;
import java.applet.Applet;

public class MyApplet9 extends Applet 
   {final int maxnumlines = 20;                       
    final int maxsize = maxnumlines + 5;             
    Point startpoint[] = new Point[maxsize];         
    Point endpoint[] = new Point[maxsize];          
    Point anchorpoint, connectpoint;                
    int entrynum = 0;                               
					      
    int arval[] = new int[maxnumlines];
    int agval[] = new int[maxnumlines]; 
    int abval[] = new int[maxnumlines]; 
    {for (int i = 0; i < maxnumlines; i++)
	{   arval[i] =(int) Math.floor(Math.random()*256);     
	    agval[i] =(int) Math.floor(Math.random()*256);      
	    abval[i] =(int) Math.floor(Math.random()*256);
	}
	}
    public void init()	                      
       {setBackground(Color.white);}            
    
     public boolean mouseDown(Event e, int x, int y)
	{if (entrynum < maxsize)                 
	  {anchorpoint = new Point(x,y);           
	   connectpoint = anchorpoint;                
	   return true;}                            
	 else                                     
	  {return false;}                          
	 } 
    
     public boolean mouseDrag(Event e, int x, int y)
	{if (entrynum < maxsize)                    
	  {connectpoint = new Point(x,y);            
	   repaint();                                
	   return true;}                             
	 else                                        
	  {return false;}                           
	 }	    
    
     public boolean mouseUp(Event e, int x, int y)
	{if (entrynum < maxsize && connectpoint != anchorpoint) 
	  {addline();                                           
	   repaint();                                        
	   return true;}                                 
	 else                                         
	  {return false;}      
	 }
     
     void addline()
	{startpoint[entrynum] = anchorpoint;       
	 endpoint[entrynum] = connectpoint;         
	 entrynum++;                                 
	 anchorpoint = null;                       
	 connectpoint = null;                                                 
	 }                                          

    public void paint(Graphics g)
       {
	for (int i = 0; i < entrynum; i++)                  
	  {if (i < maxnumlines)                            
	    {
	       g.setColor(new Color(arval[i],agval[i],abval[i]));
	       g.drawLine(startpoint[i].x, 4*startpoint[i].y/5,    
			    endpoint[i].x, 4*endpoint[i].y/5);}       

	   else                                               
	    {g.setColor(Color.black);                   
	     g.drawString("Quit it !!",  
			    endpoint[i].x, endpoint[i].y);} 
	   }
	if (connectpoint != anchorpoint)                  
	 {g.setColor(Color.red);                         
	  g.drawLine(anchorpoint.x+50, anchorpoint.y, 
		      connectpoint.x-50, connectpoint.y);}
	}
    }		 