Как работать с отрезками в JavaScript, проверяя точку - PullRequest
0 голосов
/ 01 февраля 2011

У меня есть следующий код:

Object.defineProperty(LineSegment.prototype,'hasPoint',{ value:
    function (point) {
        if (typeof point != 'object' || !(point instanceof Point)) {
            throw new TypeError('LineSegment.prototype.hasPoint requires a point value.'); }
        var m = (this.y1 - this.y2) / (this.x1 - this.x2);
        return (this.y1 - point.y) / (this.x1 - point.x) == m; }
    });

Отлично работает для линий, но не для отрезков. Как я могу проверить, находится ли точка за границами, и применить ее к JavaScript?

1 Ответ

1 голос
/ 01 февраля 2011

Самый простой и быстрый ответ можно использовать, только если x1

return (this.y1 - point.y) / (this.x1 - point.x) == m && point.x >= this.x1 && point.x <= this.x2;

Первая часть проверяет, находится ли точка на линии, а два следующих условия проверяют, находится ли координата x между x1 и x2 (включительно).

Примечание: если x2

РЕДАКТИРОВАТЬ: Просто предупреждение, ваш метод не будет очень надежным, из-за того, что компьютеры обрабатывают удваивается. См. Страницу википедии с некоторыми примерами: http://en.wikipedia.org/wiki/Double_precision

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...