Как мало вы можете нарезать пиксель HTML5 Canvas? - PullRequest
6 голосов
/ 03 мая 2011

Во Flash пиксели рассчитываются с использованием твипов или двадцатых пикселей.Следовательно, каждая позиция всегда кратна 0,05.Я не видел этого в спецификации HTML Canvas и не могу отследить положение курсора на Canvas.Кто-нибудь знает точность его пиксельных вычислений?

Редактировать для уточнения:

Я имею в виду больше парадокс Зенона , который говорит по порядкучтобы переместить что-то из точки A в точку B, оно должно сначала переместиться в точку на полпути между ними.И затем на полпути снова, до бесконечности.

Так что, если я хочу переместиться по оси x от точки 0 до 100 при 0,5:

  1. В кадре 1: 50
  2. Кадр 2: 75
  3. Кадр 3: 87,5
  4. Затем: 93,75, 96,875, 98,4375 ... и т. Д.

Итак, на каком шаге работает Canvasна самом деле округление до следующего пикселя?

1 Ответ

4 голосов
/ 03 мая 2011

Я не уверен, что вы имеете в виду под точностью нарезки.

Пиксели на холсте можно нарисовать чуть меньше 0,10, после чего они оказывают едва видимое воздействие.

Конечно, если вы масштабируете, вы можете рисовать объекты размером 0,00125 пикселей и так далее.Но они не будут видны, если вы масштабируете.

http://jsfiddle.net/GvVD9/

(первый квадратный блок в верхнем левом углу - пиксель)

Точность мышь - это совершенно другая вещь, никак не связанная со спецификацией canvas.

EDIT:

Что ж, мы можем это продемонстрировать.Мы можем нарисовать группу пикселей со значениями y, приближающимися к 100, и посмотреть, как они сравниваются с красным пикселем, нарисованным со значением y, равным 100.

http://jsfiddle.net/GvVD9/46/

Каждый отдельный горизонтально разделенный фрагмент является простоодин прямоугольник размером 1 на 1 с помощью команды drawRect.

50
75
87.5
93.75  // first black pixel you see in image
96.875
98.4375
99.21875
99.609375
99.8046875
99.90234375
99.951171875
99.9755859375
99.98779296875
99.993896484375
99.9969482421875 // last black pixel you see in image

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...