そのふたつを結ぶ線分の中点からある程度(ここでは線分の長さと同じにしようとしています)垂直に離れた点を求めたいです。
自分は
自機座標をA(ax,ay) 敵座標をB(bx,by)と置くとその2つを結ぶ線分の中心座標T(tx,ty)を
tx = (ax+bx)/2
ty = (ay+by)/2
TとAの距離 r を
r^2 = (tx-ax)^2 + (ty-ay)^2
そしてAをTを中心に90度回転した座標C(cx,cy)を
cx = r * cos(π/2) + tx
cy = r * sin(π/2) + ty
さらにその座標をTからCに向かって r 分延長した座標D(dx,dy)を
dx = (-r*tx+(r+r)cx)/r
dy = (-r*ty+(r+r)cy)/r
として最終的にDを求めようとしているのですがうまくいきません。
ABの線分を挟んで原点と逆の方向にとりたいのですがどうにも原点の方向に行ってしまったりして思い通りの場所に行きません。
ちなみに自機と敵は原点から一定距離の半径を持った同一円状をそれぞればらばらに回っています。

何が間違っているか、他の方法があるのか教えてください。お願いします。
環境 :Windows7 C++ VisualStudio2008 DXライブラリ