title: Oval collision detection not working properly
body: <p>So I'm trying to implement a test where a oval can connect with a circle, but it's not working.</p>
  
  <pre><code>edist = (float) Math.sqrt(
      Math.pow((px + ((pwidth/2) )) - (bx + (bsize/2)), 2 ) + 
      Math.pow(-((py + ((pwidth/2)) ) - (bx + (bsize/2))), 2 )
  );
  </code></pre>
  
  <p>and here is the full code (requires Slick2D):</p>
  
  <pre><code>import org.newdawn.slick.AppGameContainer;
  import org.newdawn.slick.BasicGame;
  import org.newdawn.slick.Color;
  import org.newdawn.slick.GameContainer;
  import org.newdawn.slick.Graphics;
  import org.newdawn.slick.Input;
  import org.newdawn.slick.SlickException;
  
  public class ColTest extends BasicGame{
  
  
      float px = 50;
      float py = 50;
      float pheight = 50;
      float pwidth = 50;
  
  
  
      float bx = 200;
      float by = 200;
      float bsize = 200;
  
      float edist;
  
      float pspeed = 3;
      Input input;
  
      public ColTest()
      {
          super("ColTest");
      }
  
      @Override
      public void init(GameContainer gc)
              throws SlickException {
  
      }
  
      @Override
      public void update(GameContainer gc, int delta)
              throws SlickException
      {
          input = gc.getInput();
  
          try{    
              if(input.isKeyDown(Input.KEY_UP))   
                  py-=pspeed;
  
              if(input.isKeyDown(Input.KEY_DOWN)) 
                  py+=pspeed;
  
              if(input.isKeyDown(Input.KEY_LEFT)) 
                  px-=pspeed;
  
              if(input.isKeyDown(Input.KEY_RIGHT))    
                  px+=pspeed;
          }
  
          catch(Exception e){}
      }
  
      public void render(GameContainer gc, Graphics g)
              throws SlickException
      {   
              g.setColor(new Color(255,255,255));
              g.drawString("col: " + col(), 10, 10);
              g.drawString("edist: " + edist + " dist: " + dist, 10, 100);
  
              g.fillRect(px, py, pwidth, pheight);
              g.setColor(new Color(255,0,255));
              g.fillOval(px, py, pwidth, pheight);
              g.setColor(new Color(255,255,255));
              g.fillOval(200, 200, 200, 200);
  
      }
  
      public boolean col(){
  
          edist = (float) Math.sqrt(Math.pow((px + ((pwidth/2) )) - (bx + (bsize/2)), 2) + Math.pow(-((py + ((pwidth/2)) ) - (bx + (bsize/2))), 2));
  
          if(edist &lt;= (bsize/2) + (px + (pwidth/2)))
              return true;
  
          else
              return false;
      }
  
      public float rotate(float x, float y, float ox, float oy, float a, boolean b)
      {
           float dst = (float) Math.sqrt(Math.pow(x-ox,2.0)+ Math.pow(y-oy,2.0));
  
           float oa = (float) Math.atan2(y-oy,x-ox);
  
           if(b)
              return (float) Math.cos(oa + Math.toRadians(a))*dst+ox;
  
           else
              return (float) Math.sin(oa + Math.toRadians(a))*dst+oy;
  
      }
  
      public static void main(String[] args)
              throws SlickException
      {
           AppGameContainer app =
              new AppGameContainer( new ColTest() );
  
           app.setShowFPS(false);
           app.setAlwaysRender(true);
           app.setTargetFrameRate(60);
           app.setDisplayMode(800, 600, false);
           app.start();
      }
  }
  </code></pre>