数学
TikZを使用して円錐を描画する方法について教えてください。特に、視点から見えない部分の曲線を破線で描画する方法を知りたいです。 例えば、直方体や角錐のように直線や平面で構成される立体の場合、視点から見えない箇所を破線で描画するのは比較的簡単です。しかし、円錐のように曲線や曲面で構成される立体では、そのような描画方法が分かりません。 現在、画像のように手動で描画していますが、これは浅い角度で見る場合には見栄えがするものの、上からの視点や他の角度では正確さが欠けてしまいます。 様々なビューアングルに対応可能な方法や、より効率的な描画方法についてアドバイスをいただけると助かります。 どうぞよろしくお願いいたします。 参考までに、以下コードです。 ========== \documentclass[a4paper]{jsarticle}[10pt] \usepackage[dvipdfmx]{graphics} \usepackage{tikz} \usepackage{tikz-3dplot} \usetikzlibrary{positioning, intersections, calc, arrows.meta, math, angles} \pagestyle{empty} \begin{document} %%% 描画範囲 \def\vAngle{40} % x軸正方向から見て反時計回り \def\hAngle{0} % z軸正方向から見てを反時計回り \begin{center} \tdplotsetmaincoords{\vAngle}{\hAngle} \begin{tikzpicture}[tdplot_main_coords,scale=1] %%% 定数を定義 \def\h{8} % 円錐の高さ \def\r{3} % 円錐の底面の半径 \def\R{sqrt(\h^2 + \r^2)} % 円錐の母線 \def\a{360*\r/\R} % 中心角 %%% 各点を定義 \coordinate (O) at (0,0,0); \coordinate (T) at (0,0,\h); % 円錐の頂点 \coordinate (A) at (-\r,0,0); \coordinate (B) at (\r,0,0); %%% 線分を描画 \draw[densely dashed](A)--(B); \draw[densely dashed](T)--(O); %%% 点Oを中心とする円錐の底面を描画 % \draw (1,0,0) arc[radius=\r, start angle=0, end angle=-360]; \coordinate (cR) at ({\r*cos(\hAngle)},{\r*sin(\hAngle)},0); \coordinate (cL) at ({\r*cos(\hAngle+180)},{\r*sin(\hAngle+180)},0); \draw[densely dashed] (cR) arc[radius=\r, start angle=\hAngle, end angle=\hAngle+180]; \draw(cL) arc[radius=\r, start angle=\hAngle+180, end angle=\hAngle+360]; \draw(cL)--(T)--(cR); %%% 各ノードを表示 \fill (O) circle (2pt); \draw(O)node[below]{O}; \draw(A)node[left]{A} (B)node[above right]{B} (T)node[above]{T}; %%% 長さを描画 \draw(T)[densely dashed] to [bend right=20]node[fill=white, midway]{ $\h$\;cm }(O); \draw(A)[densely dashed] to [bend left=20]node[fill=white, midway]{ $\r$\;cm }(O); \end{tikzpicture} \end{center} \end{document}