холст ничья, вызывающая NaNs - PullRequest
0 голосов
/ 12 марта 2011

Я пытаюсь нарисовать линию, используя ctx.lineTo в цикле.

У меня есть небольшая функция в моем прототипе

this.draw = function(ctx)
{
    ctx.beginPath();
    trace(trail.join(' '));
    for(var i=0;i<trail.length;i++)
    {
        // ctx.lineTo(trail[i].x,trail[i].y);
    }
    ctx.stroke();
}

Когда я запускаю это, я получаю несколько отслеженных точек([389.272, 722.798] [392.583, 25.069]...) но я ничего не вижу (очень удивительно)

Когда я удаляю комментарий из ctx.lineTo, он терпит неудачу, и мой след возвращает [NaN, NaN] [NaN, NaN]....Константы в функции рисования отлично работают (и мои точки не меняются), но мне нужно значение из переменных ...

Что не так?Проблема возникает только в Firefox

edit:
trace - это простое присвоение текста объекту html
trail - это массив точек, которые являются простыми объектами

function point(x,y)
{
    this.x = x;this.y = y;
    this.toString = function()
    {
        var xs=this.x.toFixed(3);
        var ys=this.y.toFixed(3);
        var xs="     ".substring(0,8-xs.length)+xs;
        var ys="     ".substring(0,8-ys.length)+ys;
        return "["+xs+","+ys+"]";
    }
}

1 Ответ

1 голос
/ 12 марта 2011

По-прежнему недостаточно информации, чтобы действительно ответить на этот вопрос, поэтому я просто рискну предположить: измените конструктор «point» следующим образом:

function point(x,y)
{
    this.x = x - 0; this.y = y - 0;
    this.toString = function()
    {
        var xs=this.x.toFixed(3);
        var ys=this.y.toFixed(3);
        var xs="     ".substring(0,8-xs.length)+xs;
        var ys="     ".substring(0,8-ys.length)+ys;
        return "["+xs+","+ys+"]";
    }
}

Идея состоит в том, чтобы убедиться, что "x" и "y" на самом деле числа , а не строки. Вы также можете сделать это:

    this.x = x - 0; this.y = y - 0;
    if (isNaN(this.x) || isNaN(this.y)) {
      alert("NaN! NaN!  x is " + x + "  y is " + y);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...