Фиксированная штриховая ширина в SVG

Это решение генерирует строку легко читаемых символов для кодов активации; я не хотел людей, путающих 8 с B, 1 со мной, 0 с O, L с 1, и т.д.

# Generates a random string from a set of easily readable characters
def generate_activation_code(size = 6)
  charset = %w{ 2 3 4 6 7 9 A C D E F G H J K M N P Q R T V W X Y Z}
  (0...size).map{ charset.to_a[rand(charset.size)] }.join
end
99
задан wxs 19 August 2009 в 21:08
поделиться

1 ответ

Вы можете использовать свойство vector-effect , установленное на non-scaling-stroke , см. документацию . Другой способ - использовать transform (ref) .

Это будет работать в браузерах, которые поддерживают эти части из SVG Tiny 1.2, например Opera 10. Резервный вариант включает в себя написание небольшого скрипта, который делает то же самое, в основном инвертируя CTM и применяя его к элементам, которые не должны масштабироваться.

Если вам нужны более четкие линии, вы также можете отключить сглаживание ( shape-rendering = optimizeSpeed ​​ или ] shape-rendering = crispEdges ) и / или поиграйте с позиционированием.

121
ответ дан 24 November 2019 в 05:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: