Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.08.2016, 16:16
Новичок на форуме
Отправить личное сообщение для NGKF Посмотреть профиль Найти все сообщения от NGKF
 
Регистрация: 16.05.2016
Сообщений: 8

Размытые границы фигур в SVG
Добрый день
Для проверки пользуюсь вот этим
http://codepen.io/jonitrythall/pen/5...1a48d27534ea5e

Итак рисуем прямоугольник

<svg width="200px" height="200px" viewBox="0 0 200 200">
<rect x="10" y="10" width="100" height="100"
style="fill: none; stroke: black;"/>
</svg>

Если приглядеться линии размыты.
делаем так
и границы фигуры становятся четкими

<svg width="200px" height="200px" viewBox="0 0 200 200">
<rect x="10.5" y="10.5" width="100" height="100"
style="fill: none; stroke: black;"/>
</svg>

В чём фикус, как избежать данного эффекта?

Последний раз редактировалось NGKF, 08.08.2016 в 17:40.
Ответить с цитированием
  #2 (permalink)  
Старый 12.08.2016, 08:54
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Потому что толщина эквидистанты (stroke) 1px делится на 2 и браузер рендерит по 0.5 с каждой стороны сетки пикселов с началом координат привязанной к сетке - 10:10 и эти половинки само собой оказываются с альфой 50% и выглядят мякишем. А когда ты пишешь 10.5, то четко смещаешься на 0.5 пикс и чоткий браузер чотко рендерит толщину и получается хрустяще.

Я не понял чего ты хочешь, мякиш или хруст, но обойти эту фичу не сможешь, поскольку она фундаментальная.

Проверяй так

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
]>
<svg  version="1.1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="200" height="200" viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
<rect x="10" y="10" width="100" height="100" stroke-width="2px" fill="none" stroke="black"/>
</svg>


ЗЫ shape-rendering не поможет. Это природа пикселов такая и особенно она достает на мелких кеглях текста, из-за чего в шрифтовой индустрии даже целый отдел под названием hinting имеется. Если ты видел самопальные икончатые шрифты типа фонтосом, то мог заметить, что они в зависимости от размера рендерятся как гавно. Это потому что у фонтосомов нет отдела hinting. То есть, тебе придется делать хинтинг на все фигуры, если ты хочешь юзать этот эффект сглаживания.

Последний раз редактировалось warren buffet, 12.08.2016 в 09:08.
Ответить с цитированием
  #3 (permalink)  
Старый 12.08.2016, 09:11
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

На заливке без обводки картина будет в точности наоборот. Все ровные размеры будут хрустящими, а все неровные - мягкими.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
	<!ENTITY ns_svg "http://www.w3.org/2000/svg">
	<!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
]>
<svg  version="1.1" xmlns="&ns_svg;" xmlns:xlink="&ns_xlink;" width="200" height="200" viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
<rect x="10.5" y="10.5" width="100" height="100" fill="#a00"/>
</svg>


Лучше перестать хотеть хинтинг и полегчает.
Ответить с цитированием
  #4 (permalink)  
Старый 12.08.2016, 10:45
Новичок на форуме
Отправить личное сообщение для NGKF Посмотреть профиль Найти все сообщения от NGKF
 
Регистрация: 16.05.2016
Сообщений: 8

Но если хочется на экране видеть хинтинг
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание SVG элемента и вставка на страницу FINoM Events/DOM/Window 3 13.09.2015 16:47
Проблемы с трансформациями фигур в формате SVG khusamov Оффтопик 1 08.04.2015 21:21
размытые края svg? stasia44 (X)HTML/CSS 1 27.12.2013 02:31
SVG CSS, SVG to WOFF kobezzza Firefox/Mozilla 2 29.03.2013 15:59
Inline SVG as background Paguo-86PK Элементы интерфейса 0 16.12.2011 20:12