SVG: смешивание полупрозрачных линий зависит от ширины штриха? - PullRequest
0 голосов
/ 04 февраля 2020

Смешивание полупрозрачных линий друг над другом ведет себя по-разному в зависимости от используемой ширины штриха при просмотре в Chrome или Firefox.

Пример :

    <svg xmlns="http://www.w3.org/2000/svg" width="300" height="300" version="1.1">
    <path d="M 0 0 L 200 200 L 0 200 L 200 200 L 0 200 L 200 0" fill="none" stroke="#000000" stroke-width="0.80" stroke-opacity="0.75" shape-rendering="geometricPrecision"
    </svg>

Линия внизу нарисована три раза друг над другом, поэтому она должна выглядеть темнее при смешивании. С шириной хода <= 0,8 он ведет себя как ожидалось. Ширина> 0,8 меняет все линии на однородные по цвету. Обратите внимание, что поведение также зависит от уровня масштабирования, используемого в браузере.

  • stroke-width="0.8"

width=

  • stroke-width="0.81"

width=

  • stroke-width="5"

width=

Проблема, с которой я столкнулся заключается в том, что у меня в приложении много перекрывающихся полупрозрачных строк, и получающееся изображение должно неявно выделять, какие пути использовались чаще других ( Пример в codepen ):

  • исправить с stroke-width="0.8"

correct with width 0.8

  • неправильно с stroke-width="0.81"

wrong with width 0.81

Is Есть ли подход для правильного смешивания? shape-rendering действительно имеет влияние, но не решает проблему.

...