import processing.core.*; 
import processing.xml.*; 

import java.applet.*; 
import java.awt.Dimension; 
import java.awt.Frame; 
import java.awt.event.MouseEvent; 
import java.awt.event.KeyEvent; 
import java.awt.event.FocusEvent; 
import java.awt.Image; 
import java.io.*; 
import java.net.*; 
import java.text.*; 
import java.util.*; 
import java.util.zip.*; 
import java.util.regex.*; 

public class WFM extends PApplet {

//These are the main variables State is the roatation angle.
int upper = 30;
int lower = 30;
int State = 45;

//Everything else you should leave alone unless you know what you're doing.
int Xlength = upper + lower + 1;
int Yheight;

float px, py;

public void setup() {
  if (upper >= lower) {
    Yheight = upper;
  } else {
    Yheight = lower;
  }
  size(Xlength, Yheight);
  noFill();
}

public void draw() {
  background(255, 0, 255);
  if (State == 0) {
    ellipse(0, height, upper * 2, upper * 2);
    stroke(0);
    line (0, height - 1, upper, height - 1);
    line (upper, height - 1, upper + lower, height - 1);
    stroke(255, 0, 0);
  }
  if (State >= 1) {
    ellipse(0, height, upper * 2, upper * 2);
    px = cos(radians(0 - State))*upper;
    py = height + sin(radians(0 - State))*upper;
    stroke(0);
    line (0, height -1, px, py);
    line (px, py, upper + (lower*State/90), height -1);
    stroke(255, 0, 0);
  }
}
  static public void main(String args[]) {
    PApplet.main(new String[] { "--bgcolor=#ECE9D8", "WFM" });
  }
}
