ベクトル(-0.7、-0.3)に沿って移動するスプライトがあります。私が持っている座標を持つ別の点があります-それらを(xB | yB)と呼びましょう。さて、かなり前に、ベクトルから点までの垂直距離を計算することを学びました(このページの最初の式http://en.wikipedia.org/wiki/Perpendicular_distance)。しかし、私はそれを試しました、そして私がそれを記録するならば、それは100%偽である信じられないほど高い値を返します。だから私は何を間違えますか?私が提供した画像を見てください。
comingVector =(-0.7、-0.3) //これはスプライトが移動しているベクトルです
bh.positionは、距離を計算したいポイントです。
コードは次のとおりです。
// first I am working out the c Value in the formula in the link given above
CGPoint pointFromVector = CGPointMake(bh.incomingVector.x*theSprite.position.x,bh.incomingVector.y*theSprite.position.y);
float result = pointFromVector.x + pointFromVector.y;
float result2 = (-1)*result;
//now I use the formula
float test = (bh.incomingVector.x * bh.position.x + bh.incomingVector.y * bh.position.y + result2)/sqrt(pow(bh.incomingVector.x, 2)+pow(bh.incomingVector.y, 2));
//the distance has to be positive, so I do the following
if(test < 0){
test *= (-1);
}