Затенение сферы

Затенение сферы

Второй ответ в

Как нарисовать заштрихованную сферу?

это сфера с желтым затенением. Как мне сделать ее черно-белой? Спасибо за любую помощь! Я пытаюсь уже час, меняя значения случайным образом, но ничего не добился, так как не понимаю код.

решение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}

Связанный контент