
Я заметил, что 25% непрозрачности с белым фоном дает мне другой результат, чем смешивание 75% белого в цвете. Почему так, и какой правильный способ получить не непрозрачность, но идентичный цвет (по крайней мере для белого фона).
Вот MWE:
\documentclass[xcolor=dvipsnames]{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[ black!25!white,fill=RoyalBlue!25!white] (0.0,0) circle (0.7cm);
\draw[opacity=0.25, fill=RoyalBlue] (3,0) circle (0.7cm);
\end{tikzpicture}
\end{document}
решение1
Самый быстрый способ исправить это — заменить dvipsnames
на svgnames
.
Комментарий percusse примерно правильный. Фактическая проблема в том, что RoyalBlue
in dvipsnames
определяется с помощьюCMYKмодель. В то время как мы ожидаем линейной интерполяции при смешивании цветов,CMYKМодель обрабатывается в соответствии со стандартом PDF следующим образом:
- TheС,М, иИкомпоненты должны быть преобразованы в их взаимодополняющиер,г, иБкомпоненты обычным способом. Предыдущие формулы должны применяться кРГБЗначения цвета. Результаты должны быть преобразованы обратно вС,М, иИ.
- ДляКкомпонент, результатом будетКкомпонентС бдляОттенок,Насыщенность, иЦветрежимы смешивания; это должно бытьКкомпонентС сдляСветимостьрежим смешивания.
(С б= цвет фона;С с= исходный цвет)
Это показывает, что в общем случае смешивание, включающееCMYKникогда не бывает линейным, если толькоКкомпоненты те же самые.