This is awesome!

i added custom

[code]public void drag(){
xp=x+Math.sqrt(dx2*dx2+dy2*dy2)*Math.cos(Math.atan2(dy2,dx2)-Math.atan2(dy1,dx1))*Math.cos(Math.atan2(dy1,dx1)); // xp = x + component cta1
yp=y+Math.sqrt(dx2*dx2+dy2*dy2)*Math.cos(Math.atan2(dy2,dx2)-Math.atan2(dy1,dx1))*Math.sin(Math.atan2(dy1,dx1)); //
R = Math.sqrt(dx2*dx2+dy2*dy2); // need this to force the value in the slider to show correctly
}[/code]

add to graphic line vectorarrowblack on drag "drag()"


and

[code]public void changeXY() {
dx2 = R*Math.cos(cta2); // this allows the changing in R and cta2 to be fed back to dx2 and dy2
dy2 = R*Math.sin(cta2);
}
[/code]
in the slider that control R add to drag "changeXY()"


i continue to have in fixed relations:

[code]xp=x+Math.sqrt(dx2*dx2+dy2*dy2)*Math.cos(Math.atan2(dy2,dx2)-Math.atan2(dy1,dx1))*Math.cos(Math.atan2(dy1,dx1)); // xp = x + component cta1
yp=y+Math.sqrt(dx2*dx2+dy2*dy2)*Math.cos(Math.atan2(dy2,dx2)-Math.atan2(dy1,dx1))*Math.sin(Math.atan2(dy1,dx1)); // [/code]

i debugged it that i must have it here still or else  the components will show wrongly when i drag the coordinate (x,y) beginning of the vector of length dx2 and dy2 to move the origin.

It is very cool because you give enough tips, i know enough to debug and learn on my own.

[size=15pt][color=blue]you are simply awesome![/color] [/size] ;D