Uncaught TypeError: свойство 'dist2' объекта [object Object] не является функцией

0

У меня есть эти функции, которые должны вернуть мне расстояние от точки p до линии сегмента vw. Проблема в том, что через некоторое время я получаю следующую ошибку: Uncaught TypeError: свойство 'dist2' объекта [object Object] не является функцией.

Я получаю его непосредственно в distToSegmentSquared, даже не вызывая функцию dist2(). Это какой-либо другой dist2() в любом месте jquery? Я не нашел его.

Код:

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
  • 0
    По какой именно линии вы отслеживали колл-стэк?
  • 0
    var l2 = dist2 (v, w); умер здесь
Показать ещё 5 комментариев
Теги:

2 ответа

0

Я пробовал свой код в jsfiddle, я не могу найти никакой ошибки: скрипка.

 var result=distToSegment(
            {x:10,y:2}, {x:5,y:2}, {x:9,y:10}
            );  
  • 0
    хорошо, большое спасибо. я тоже попробовал свой код, ффс
0

Я подозреваю, что ваша ошибка исходит из того, что JavaScript не имеет функции sqr. Я положил один

function sqr(v){return Math.pow(v,2);}

и написал эту скрипку. Все ханк-доры.

  • 0
    это там....

Ещё вопросы

Сообщество Overcoder
Наверх
Меню