>>316
// 2点間距離
LL = sqrt( dot( A - B ) );

//長さLになる部分となる座標
L = LL - X;
C = ( A - B ) * L / LL + B;

基本杉