我正在编写一个非常简单的函数,我应该找到两个3d点之间的距离。一组点直接作为浮点数给出,而其他点作为水平数组给出。
三个输入是x,y,z是浮点数,行拾取[0]作为参数传递,是[“blue1”,441.2223,231.44,127.7466] 现在,该行当然是一个对象。我在制作计算距离的函数时遇到了问题:我现在的代码是:\
function distance(x,y,z,par)
{
var p:float;
p=Mathf.Sqrt( (x-parseFloat(par[1].ToString())) * (x-parseFloat(par[1].ToString())) + (y-parseFloat(par[2].ToString())) * (y-parseFloat(par[2].ToString())) + (z-parseFloat(par[3].ToString())) * (z-parseFloat(par[3].ToString())));
return p;
}
请尝试帮助我。
答案 0 :(得分:0)
该错误与var p:float;
有关,您不需要尝试将变量p预先声明为javascript是无类型的。引用与static function Sqrt (f : float) : float
一起引用的是它期望变量是float并返回float。您的代码应写为:
function distance(x,y,z,par)
{
var p = Mathf.Sqrt( (x-parseFloat(par[1])) * (x-parseFloat(par[1])) + (y-parseFloat(par[2])) * (y-parseFloat(par[2])) + (z-parseFloat(par[3])) * (z-parseFloat(par[3])));
return p;
}
您也不需要使用String()参数,因为它们将被解析为浮点数。