Это должно сглаживать векторную графику
Сглаживание требуется для правильного построения векторной графики, которая включает нецелые координаты (0,4, 0,4), что будут делать все, кроме очень немногих клиентов.
Когда заданы нецелые координаты, холст имеет две опции:
- Antialias - закрасить пиксели вокруг координаты относительно расстояния от целочисленной координаты до нецелой (ошибка округления).
- Round - применить некоторую функцию округления к нецелочисленной координате (например, 1,4 станет 1).
Более поздняя стратегия будет работать для статической графики, хотя для небольшой графики (круг с радиусом 2) кривые будут показывать четкие шаги, а не плавную кривую.
Настоящая проблема заключается в том, что графика переводится (перемещается) - скачки между одним пикселем и другим (1.6 => 2, 1.4 => 1) означают, что начало фигуры может перескакивать относительно родительского контейнера. (постоянно смещается на 1 пиксель вверх / вниз и влево / вправо).
Некоторые советы
Совет № 1 : Вы можете смягчить (или укрепить) сглаживание, масштабируя холст (скажем, по x), а затем примените обратную шкалу (1 / x) к геометрии самостоятельно (не используя холст). .
Сравнить (без масштабирования):
![A few rectangles](https://i.stack.imgur.com/127jr.png)
с (масштаб холста: 0,75; ручная шкала: 1,33):
![Same rectangles with softer edges](https://i.stack.imgur.com/ccjt2.png)
и (масштаб холста: 1,33; ручной масштаб: 0,75):
![Same rectangles with darker edges](https://i.stack.imgur.com/fWWBp.png)
Совет № 2 : Если неровный вид действительно то, что вам нужно, попробуйте нарисовать каждую фигуру несколько раз (без стирания). С каждым рисованием пиксели сглаживания становятся темнее.
Сравнить. После рисования один раз:
![A few paths](https://i.stack.imgur.com/P96ie.png)
После рисования трижды:
![Same paths but darker and no visible antialiasing.](https://i.stack.imgur.com/eICmM.png)