Это должно сглаживать векторную графику
Сглаживание требуется для правильного построения векторной графики, которая включает нецелые координаты (0,4, 0,4), что будут делать все, кроме очень немногих клиентов.
Когда заданы нецелые координаты, холст имеет две опции:
- Antialias - закрасить пиксели вокруг координаты относительно расстояния от целочисленной координаты до нецелой (ошибка округления).
- Round - применить некоторую функцию округления к нецелочисленной координате (например, 1,4 станет 1).
Более поздняя стратегия будет работать для статической графики, хотя для небольшой графики (круг с радиусом 2) кривые будут показывать четкие шаги, а не плавную кривую.
Настоящая проблема заключается в том, что графика переводится (перемещается) - скачки между одним пикселем и другим (1.6 => 2, 1.4 => 1) означают, что начало фигуры может перескакивать относительно родительского контейнера. (постоянно смещается на 1 пиксель вверх / вниз и влево / вправо).
Некоторые советы
Совет № 1 : Вы можете смягчить (или укрепить) сглаживание, масштабируя холст (скажем, по x), а затем примените обратную шкалу (1 / x) к геометрии самостоятельно (не используя холст). .
Сравнить (без масштабирования):
с (масштаб холста: 0,75; ручная шкала: 1,33):
и (масштаб холста: 1,33; ручной масштаб: 0,75):
Совет № 2 : Если неровный вид действительно то, что вам нужно, попробуйте нарисовать каждую фигуру несколько раз (без стирания). С каждым рисованием пиксели сглаживания становятся темнее.
Сравнить. После рисования один раз:
После рисования трижды: