我有沿着矢量(-0.7,-0.3)移动的子画面。我有另一点我的坐标 - 我们称它们为(xB | yB)。现在,相当一段时间以前,我学会了计算从矢量到点的垂直距离(本页上的第一个公式http://en.wikipedia.org/wiki/Perpendicular_distance)。但是我尝试过,如果我记录下来,它会返回一个令人难以置信的高值,这是100%错误。那么我做错了什么?看看我提供的图像。
incomingVector =(-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);
}
对您定义矢量的图像为_V(-0.3; -0.7)_但在描述中您是在讨论_V(-0。7; -0.3)_。他们不一样。我试图找出为什么计算错误,你能给我一些结果吗?因为这个公式给我的随机值给出了很好的结果... – holex 2012-07-16 07:27:11
是的,它并不重要,因为我已经假设矢量为(-0.3 | -0.7),而它确实是(-0.7 | -0.3) 。我在绘画中犯了一个错误。我得到的值是在600年代,而精灵的垂直距离显然只是大约100或更少(我的ipad屏幕上的近似估计值)。 – 2012-07-16 15:26:05