
를 사용하여 회색조 음영 구를 어떻게 그리나요 tikz-3dplot
? 나는 반경이 와 \tdplotsphericalsurfaceplot
같고 구면 각도에 따라 사용해 보았습니다 . 하지만 색상의 색조(HSB 공간)만 규정할 수 있는 것 같습니다.1
parametricfill
다음 게시물, 나에게 적합하지 않습니다. 끝까지 가서 재정의할 수도 있지만 \tdplotdosurfaceplot
그건 너무 지나친 것 같습니다.
내가 원한다는 점을 강조하겠습니다.진실3D 그림(나머지 내 그림필요하다3D 좌표: 호를 그려야 하기 때문에 2D 트릭을 사용할 수 없습니다.
\draw [ball color=white] (0,0,0) circle (1) ;
그래서 이것은~ 아니다중복음영 처리된 구를 그리는 방법. 나는 tikz-3dplot
다른 3D 패키지에도 열려 있지만 3D 도면을 명시적으로 원합니다 .
다음은 두 개의 MWE입니다. 첫 번째 구는 균일한 색상을 사용하고 두 번째는 구면 각도의 선형 조합을 사용합니다.
\begin{tikzpicture}[tdplot_main_coords]
\tdplotsphericalsurfaceplot[parametricfill]{24}{24}{1} {black}{50}{}{}{}
\begin{scope}[xshift=4cm]
\tdplotsphericalsurfaceplot[parametricfill]{24}{24}{1} {black}{\tdplottheta+\tdplotphi}{}{}{}
\end{scope}
\end{tikzpicture}
또한 파라메트릭 라인을 제거하고 싶습니다... 아마도 이것은 작업하기에 적합한 패키지가 아닐 수도 있고 패키지의 올바른 명령이 아닐 수도 있습니다.
답변1
더 나은 사용 pgfplots
(에서 적응이 게시물). \theta+\phi
제 생각에는 파라메트릭 채우기가 꽤 이상해 보입니다.
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}
\begin{document}
\begin{tikzpicture}
\begin{axis}
[
width=6cm,height=6cm,
axis equal,enlargelimits=false,
axis lines=none,
domain=0:180,samples=21,
y domain=0:360,samples y=21,
colormap/blackwhite,
view={100}{10},
]
\addplot3
[
surf,
z buffer=sort,
shader=flat,
point meta={acos(z/sqrt(x*x+y*y+z*z)) + atan2(y,x)}
] (
{sin(x)*cos(y)},
{sin(x)*sin(y)},
{cos(x)}
);
\end{axis}
\end{tikzpicture}
\end{document}
답변2
여기저기서 시도해 본 결과 허용 가능한 솔루션을 찾았습니다 tikz-3dplot
. 이 솔루션은 단점이 있지만 아래를 참조하세요. 다음은 음영 처리된 구에 그려진 구형 삼각형을 보여주는 MWE입니다. 다른 음영을 보려면 다음으로 이동하세요.음영 처리된 구를 그리는 방법.
아래 솔루션은 부분적으로 부정 행위를 합니다. 음영 처리된 구를 그리는 것이 아니라 원근감 있는 음영 처리된 2D 디스크를 그리는 것입니다. 따라서 구처럼 보이도록 하려면 3공간에서 회전해야 합니다(따라서 회전된 좌표). 그러나 호의 구형 좌표는 사실입니다.
\documentclass[11pt]{article}
\usepackage{tikz,tikz-3dplot}
\tdplotsetmaincoords{80}{110}
\begin{document}
\begin{figure}
\begin{center}
\begin{tikzpicture}[scale=3,tdplot_main_coords]
% spherical background
\tdplotsetrotatedcoords{20}{80}{0}
\draw [ball color=white,very thin,tdplot_rotated_coords] (0,0,0) circle (1) ;
% equator
\draw [dashed] (0,0,0) circle (1) ;
% spherical triangle
\tdplotdefinepoints(0,0,0)(0.8,-0.4,-0.4)(0.4,0.8,-0.4)
\tdplotdrawpolytopearc[thick]{1}{}{}
\tdplotdefinepoints(0,0,0)(0.4,0.8,-0.4)(0.45,0.22,0.9)
\tdplotdrawpolytopearc[thick]{1}{}{}
\tdplotdefinepoints(0,0,0)(0.45,0.22,0.9)(0.8,-0.4,-0.4)
\tdplotdrawpolytopearc[thick]{1}{}{}
\end{tikzpicture}
\end{center}
\end{figure}
\end{document}
또 다른 단점은 호 정의 구문이 어색 tikz-3dplot
하고 이를 명령과 혼합할 수 없다는 점입니다 coordinate
.