So I'm trying to implement a test where a oval can connect with a circle, but it's not working.
edist = (float) Math.sqrt(Math.pow((px + ((pwidth/2) )) - (bx + (bsize/2)), 2) + Math.pow(-((py + ((pwidth/2)) ) - (bx + (bsize/2))), 2));
and here is the full code (requires Slick2D):
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 <= (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();
    }
}