Я использую холст HTML5 для создания «предварительного просмотра» изображения, которое в основном состоит из некоторых прямоугольников и простых линий. Пока все работает, но есть одна проблема, которую я никак не могу исправить. Предположите следующую ситуацию:HTML5: неточное позиционирование прямоугольников
context.fillStyle = "rgba(0,0,0,0.75)";
context.fillRect(100.64646,100,50.94967,20);
context.fillRect(100.64646+50.94967,100,100,20);
Итак, я рисую 2 прямоугольника с некоторой непрозрачностью. Координата x-start плюс длина x первого прямоугольника равна x-начальной координате второго прямоугольника, поэтому теоретически они должны сталкиваться без какого-либо разницы между ними. К сожалению, результат отличается: (см. http://files.clemensfreitag.de/thin_spacing.jpg)
Между полями очень малый промежуток, и цвет фона отображается. Но: Эта проблема не возникает, если координаты и длины являются целыми.
Есть ли способ сделать это, используя значения float? Преобразование их в целые числа до рисования может быть приемлемым в моем приложении, но мне просто интересно, почему это не должно работать с поплавками.
Бест, Clemens
[JS Fiddle demo] (http://jsfiddle.net/), что мы можем видеть, работаем и можем работать? Таким образом, нам не нужно угадывать весь ваш код/скрипт. –
уверен (см. Http://jsfiddle.net/nowjab23/qjzfU/1/). Мне просто интересно, почему в верхней комбинации боксов есть определенный интервал между двумя прямоугольниками, где в нижнем, где используются целые числа, нет – Clemens
Возможно, вас заинтересует это сообщение в блоге Я только что сделал о позиционировании на холсте: http://canop.org/blog/?p=220 (это было связано с другим вопросом SO, где строки были нерегулярными). Использование целых чисел или нет, или «средние целые числа» действительно имеют значение. –