ポイント p からセグメント ライン vw までの距離を返す関数があります。私が抱えている問題は、しばらくすると次のエラーが表示されることです: Uncaught TypeError: オブジェクト [オブジェクト オブジェクト] のプロパティ 'dist2' は関数ではありません。
関数dist2()を呼び出すことさえせずに、distToSegmentSquaredで直接受け取ります。jqueryのどこかに他のdist2()はありますか?私は何も見つかりませんでした。
コード:
function sqr(x) {
return x * x;
}
function dist2(v, w) {
console.log(v);
console.log(w);
return sqr(v.x - w.x) + sqr(v.y - w.y);
}
function distToSegmentSquared(p, v, w) {
var l2 = dist2(v, w);
if (l2 == 0)
return dist2(p, v);
var t = ((p.x - v.x) * (w.x - v.x) + (p.y - v.y) * (w.y - v.y)) / l2;
if (t < 0)
return dist2(p, v);
if (t > 1)
return dist2(p, w);
return dist2(p, {x: v.x + t * (w.x - v.x),
y: v.y + t * (w.y - v.y)});
}
function distToSegment(p, v, w) {
return Math.sqrt(distToSegmentSquared(p, v, w));
}
そのエラーに与えられる値は次のとおりです。
p: Object
x: 461
y: 333
v: Object
x: 80
y: 120
w: Object
x: 260
y: 120