package threearms;
import java.awt.*;
import primitives.machines.MachineException;
class ConstraintSpaceDemo extends MachineSpace{
  	double alpha=Math.PI/2;
	Point state;
	public ConstraintSpaceDemo(Canvas drawArea,MachineSpace Dual){
		  super	(drawArea,Dual);
		  state = new Point(0,0);
		  dAlpha = Math.PI*dual.dAlpha/(2*(dual.angles[2]-dual.angles[1])); 
	}
	Point p = new Point();
	public void keyTyped(int key)throws MachineException{
		int width = this.drawArea.getSize().width;
		int d = Math.min(drawArea.getSize().width,drawArea.getSize().height)/2;
		switch(key){
		case 1:alpha=alpha+dAlpha;break;
		case -1: alpha=alpha-dAlpha;break;
		}
		p.move(width/2-1,d);
		state = Geomtry.getPointByVector(p,d-2,alpha);
	}
//	public void mouseClicked(int x,int y){}
	public void redraw(Graphics g){
		int width = this.drawArea.getSize().width;
		Dimension dm = this.drawArea.getSize();
		int d = Math.min(dm.width,dm.height);
		g.setColor(Color.black);
		g.drawOval((width-d)/2,2,d-4,d-4);
		g.setColor(Color.green);
		g.fillOval(state.x-3,state.y-3,6,6);
	}
}