При рисовании на холсте в Firefox, если вы попытаетесь нарисовать или перейти к точке за пределами холста, будет выдано сообщение об ошибке (это копируется / вставляется непосредственно из Firebug):
An invalid or illegal string was specified" code: "12
Другие браузеры не выдают ошибку. Это касается как методов рисования (lineTo, arc и т. Д.), Так и рисования изображений. Достаточно просто сделать быструю проверку границ, используя ширину и высоту холста перед рисованием, но как насчет рисования частей вещей?
Например, допустим, у вас есть круг, определенный центральной точкой и радиусом и нарисованный с помощью дуги (). Если вы сделаете проверку границ, центр может быть вне холста, а часть круга технически должна быть видимой. Следовательно, круг будет нарисован полностью или не нарисован вообще: невозможно нарисовать только часть круга, если центральная точка находится вне холста.
У кого-нибудь есть обходной путь?
Одна из тех вещей, о которых я подумал, - это использование большого холста "мирового буфера", который затем копируется с холста дисплея. Другим может быть рисование каждого объекта в центре буферного холста, а затем копирование вновь нарисованных пикселей на экранное полотно в их правильном положении.
Что сделали люди, чтобы обойти эту проблему?