История изменений
Исправление proud_anon, (текущая версия) :
Я сам по HTML специалист небольшой, но код прочитал и имею следующие замечания:
- У меня в Хроме ничего не работало, пока я не внес script внутрь body.
- А еще лучше оформи файл как положено, с DOCTYPE, с <html>, с <head> и т.п. Укажи кодировку при помощи meta. У меня, например, кодировка не распозналась автоматически.
- Код ну очень грязный. Лишние закрывающие теги, какое-то странное форматирование, вызов beginPath при рисовании прямоугольника, где никакого пути не рисуется и, на мой неопытный взгляд, странная логика с сохранением данных в полях canvas — но в этом я не уверен.
А теперь ответы на твои вопросы:
1) Почему рисование начинается со 2ого элемента (первый почему-то рисуется черным как я понял)
У тебя canvascontext.strokeStyle выставляется только в функции, которая рисует прямоугольник. Причем ПОСЛЕ вызова canvascontext.strokeRect(), который его рисует. Поэтому первый прямоугольник рисуется черным, а если вообще не начинать рисовать прямоугольник, то все фигуры будут черными. Выставляй цвет, например, перед началом работы.
2) Почему на кнопке «кривая"то и дело появляется какая-то прямая, которую не рисуем.»
У тебя кривые вообще как-то странно рисуются, координаты сбиты. Возьми, что ли, дебаггер и посмотри, что там происходит.
3) Как можно добавить кнопку «выбор цвета рисования» и кнопку «выбор цвета фона»
Вопрос непонятен. Возьми и добавь. У тебя ведь и так используются все необходимые API. Если есть какие-то проблемы, опиши их конкретно.
Вот только насчет цвета фона — не знаю, как бы тут сделать так, чтобы при смене фона не стиралось все нарисованное. Возможно, либо сделать canvas прозрачным, а фон менять у родительского элемента, либо как-то преобразовывать цвет.
Исходная версия proud_anon, :
Я сам по HTML специалист небольшой, но код прочитал и имею следующие замечания:
- У меня в Хроме ничего не работало, пока я не внес script внутрь body.
- А еще лучше оформи файл как положено, с <html>, с <head> и т.п. Укажи кодировку при помощи meta. У меня, например, кодировка не распозналась автоматически.
- Код ну очень грязный. Лишние закрывающие теги, какое-то странное форматирование, вызов beginPath при рисовании прямоугольника, где никакого пути не рисуется и, на мой неопытный взгляд, странная логика с сохранением данных в полях canvas — но в этом я не уверен.
А теперь ответы на твои вопросы:
1) Почему рисование начинается со 2ого элемента (первый почему-то рисуется черным как я понял)
У тебя canvascontext.strokeStyle выставляется только в функции, которая рисует прямоугольник. Причем ПОСЛЕ вызова canvascontext.strokeRect(), который его рисует. Поэтому первый прямоугольник рисуется черным, а если вообще не начинать рисовать прямоугольник, то все фигуры будут черными. Выставляй цвет, например, перед началом работы.
2) Почему на кнопке «кривая"то и дело появляется какая-то прямая, которую не рисуем.»
У тебя кривые вообще как-то странно рисуются, координаты сбиты. Возьми, что ли, дебаггер и посмотри, что там происходит.
3) Как можно добавить кнопку «выбор цвета рисования» и кнопку «выбор цвета фона»
Вопрос непонятен. Возьми и добавь. У тебя ведь и так используются все необходимые API. Если есть какие-то проблемы, опиши их конкретно.
Вот только насчет цвета фона — не знаю, как бы тут сделать так, чтобы при смене фона не стиралось все нарисованное. Возможно, либо сделать canvas прозрачным, а фон менять у родительского элемента, либо как-то преобразовывать цвет.