
Второй ответ в
Как нарисовать заштрихованную сферу?
это сфера с желтым затенением. Как мне сделать ее черно-белой? Спасибо за любую помощь! Я пытаюсь уже час, меняя значения случайным образом, но ничего не добился, так как не понимаю код.
решение1
Цвета устанавливаются здесь:
%% currently there is just one number in the stack.
%% we need three corresponding to the RGB values
dup
0.4
Вам необходимо указать значения RGB, которые вы хотите изменить, например, если вы установите:
dup
0.4
0.5
Получается что-то вроде розового.
RGB означает красный, зеленый и синий, основные цвета, в этой нотации они имеют значение от 0 (= нет света) до 1 (= полный свет), например:
r g b
0 0 0 = black
1 0 0 = red
0 1 0 = green
0 0 1 = blue
1 1 1 = white
Если все 3 значения равны значению от 0 до 1, вы получаете шкалу серого.
Как вы сказали в комментарии, если вы сделаете все RGB одинаковыми, вы потеряете оттенок, я думаю, вы можете достичь желаемого результата, изменив другие команды, но я их не знаю, потому что они представляют собой упрощенную форму подмножества языка PostScript, поищите в \pgfdeclarefunctionalshading
руководстве Ti_k_Z & PGF и посмотрите раздел 3.9.4 [здесь] (http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf) для получения дополнительной информации.
Вместо этого я предлагаю вам использовать более простое решение. Если вам не нравится решение CroCo, попробуйте что-то вроде этого (изменяйте значения, пока не найдете то, что ищете):
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\pgfdeclareradialshading{sphere}{\pgfpoint{0.5cm}{0.5cm}}%
{rgb(0cm)=(1,1,1);
rgb(0.9cm)=(0.7,0.7,0.7);
rgb(1cm)=(0.5,0.5,0.5);
rgb(1.05cm)=(0,0,0)}
\begin{document}
\pgfuseshading{sphere}
\end{document}
решение2
Это то, что вы ищете?
\documentclass[border={10pt}]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
[
sphereBlack/.style={ball color = black},
sphereYellow/.style={ball color = yellow}
]
\shade[sphereBlack] (0,0) circle (1cm);
\shade[sphereYellow] (3,0) circle (1cm);
\end{tikzpicture}
\end{document}