LINUX.ORG.RU

История изменений

Исправление proud_anon, (текущая версия) :

Я сам по HTML специалист небольшой, но код прочитал и имею следующие замечания:

  1. У меня в Хроме ничего не работало, пока я не внес script внутрь body.
  2. А еще лучше оформи файл как положено, с DOCTYPE, с <html>, с <head> и т.п. Укажи кодировку при помощи meta. У меня, например, кодировка не распозналась автоматически.
  3. Код ну очень грязный. Лишние закрывающие теги, какое-то странное форматирование, вызов beginPath при рисовании прямоугольника, где никакого пути не рисуется и, на мой неопытный взгляд, странная логика с сохранением данных в полях canvas — но в этом я не уверен.

А теперь ответы на твои вопросы:

1) Почему рисование начинается со 2ого элемента (первый почему-то рисуется черным как я понял)

У тебя canvascontext.strokeStyle выставляется только в функции, которая рисует прямоугольник. Причем ПОСЛЕ вызова canvascontext.strokeRect(), который его рисует. Поэтому первый прямоугольник рисуется черным, а если вообще не начинать рисовать прямоугольник, то все фигуры будут черными. Выставляй цвет, например, перед началом работы.

2) Почему на кнопке «кривая"то и дело появляется какая-то прямая, которую не рисуем.»

У тебя кривые вообще как-то странно рисуются, координаты сбиты. Возьми, что ли, дебаггер и посмотри, что там происходит.

3) Как можно добавить кнопку «выбор цвета рисования» и кнопку «выбор цвета фона»

Вопрос непонятен. Возьми и добавь. У тебя ведь и так используются все необходимые API. Если есть какие-то проблемы, опиши их конкретно.

Вот только насчет цвета фона — не знаю, как бы тут сделать так, чтобы при смене фона не стиралось все нарисованное. Возможно, либо сделать canvas прозрачным, а фон менять у родительского элемента, либо как-то преобразовывать цвет.

Исходная версия proud_anon, :

Я сам по HTML специалист небольшой, но код прочитал и имею следующие замечания:

  1. У меня в Хроме ничего не работало, пока я не внес script внутрь body.
  2. А еще лучше оформи файл как положено, с <html>, с <head> и т.п. Укажи кодировку при помощи meta. У меня, например, кодировка не распозналась автоматически.
  3. Код ну очень грязный. Лишние закрывающие теги, какое-то странное форматирование, вызов beginPath при рисовании прямоугольника, где никакого пути не рисуется и, на мой неопытный взгляд, странная логика с сохранением данных в полях canvas — но в этом я не уверен.

А теперь ответы на твои вопросы:

1) Почему рисование начинается со 2ого элемента (первый почему-то рисуется черным как я понял)

У тебя canvascontext.strokeStyle выставляется только в функции, которая рисует прямоугольник. Причем ПОСЛЕ вызова canvascontext.strokeRect(), который его рисует. Поэтому первый прямоугольник рисуется черным, а если вообще не начинать рисовать прямоугольник, то все фигуры будут черными. Выставляй цвет, например, перед началом работы.

2) Почему на кнопке «кривая"то и дело появляется какая-то прямая, которую не рисуем.»

У тебя кривые вообще как-то странно рисуются, координаты сбиты. Возьми, что ли, дебаггер и посмотри, что там происходит.

3) Как можно добавить кнопку «выбор цвета рисования» и кнопку «выбор цвета фона»

Вопрос непонятен. Возьми и добавь. У тебя ведь и так используются все необходимые API. Если есть какие-то проблемы, опиши их конкретно.

Вот только насчет цвета фона — не знаю, как бы тут сделать так, чтобы при смене фона не стиралось все нарисованное. Возможно, либо сделать canvas прозрачным, а фон менять у родительского элемента, либо как-то преобразовывать цвет.