h와 r로 매우 간단한 원뿔을 만들어야하는데 (예로 업로드 한 사진처럼) 이전에는 찾을 수 없습니다. 질문.

단순 콘

댓글

답변

arc

 \documentclass[tikz,border=10pt]{standalone} \usetikzlibrary{calc} \begin{document} \begin{tikzpicture} \draw[dashed] (0,0) arc (170:10:2cm and 0.4cm)coordinate[pos=0] (a); \draw (0,0) arc (-170:-10:2cm and 0.4cm)coordinate (b); \draw[densely dashed] ([yshift=4cm]$(a)!0.5!(b)$) -- node[right,font=\footnotesize] {$h$}coordinate[pos=0.95] (aa)($(a)!0.5!(b)$) -- node[above,font=\footnotesize] {$r$}coordinate[pos=0.1] (bb) (b); \draw (aa) -| (bb); \draw (a) -- ([yshift=4cm]$(a)!0.5!(b)$) -- (b); \end{tikzpicture} \end{document} 

여기에 이미지 설명 입력

ellipse

\documentclass[tikz,border=10pt]{standalone} \usetikzlibrary{calc} \begin{document} \begin{tikzpicture} \begin{scope} \clip (-2,0) rectangle (2,1cm); \draw[dashed] (0,0) circle(2cm and 0.35cm); \end{scope} \begin{scope} \clip (-2,0) rectangle (2,-1cm); \draw (0,0) circle(2cm and 0.35cm); \end{scope} \draw[densely dashed] (0,4) -- node[right,font=\footnotesize] {$h$}coordinate[pos=0.95] (aa)(0,0) -- node[above,font=\footnotesize] {$r$}coordinate[pos=0.1] (bb) (2,0); \draw (aa) -| (bb); \draw (-2,0) -- (0,4) -- (2,0); \end{tikzpicture} \end{document} 

여기에 이미지 설명 입력

Gonzalo는 친절하게 실린더에 음영을 제공했으며 그의 코드를 재현하고 있습니다 (감사합니다).

\documentclass{article} \usepackage{tikz} \usetikzlibrary{shadings} \begin{document} \begin{tikzpicture} \fill[ top color=gray!50, bottom color=gray!10, shading=axis, opacity=0.25 ] (0,0) circle (2cm and 0.5cm); \fill[ left color=gray!50!black, right color=gray!50!black, middle color=gray!50, shading=axis, opacity=0.25 ] (2,0) -- (0,6) -- (-2,0) arc (180:360:2cm and 0.5cm); \draw (-2,0) arc (180:360:2cm and 0.5cm) -- (0,6) -- cycle; \draw[dashed] (-2,0) arc (180:0:2cm and 0.5cm); \draw[dashed] (2,0) -- node[below] {$r$} (0,0) -- node[left] {h} (0,6) ; \draw (0,8pt) -- ++(8pt,0) -- (8pt,0); \end{tikzpicture} \end{document} 

여기에 이미지 설명 입력

댓글

  • 두 가지 옵션을 제공한다고 답 했으므로 새로운 내 대답과 같이 음영이있는 옵션? 두 가지 다른 답변에서 거의 동일한 코드를 제공하는 것은 의미가 없습니다.
  • @GonzaloMedina 감사합니다. 귀하의 코드를 사용했습니다. 감사합니다.
  • 측면이 하단 타원에 접해야하는데이 경우에는 그렇지 않기 때문에 바닥에 불쾌한 실수가 있습니다. 더 크게 그리면 문제가 커집니다.

답변

수학자가 필요합니다. 접선 점을 계산 한 다음 원뿔의 정점을 장축의 끝이 아닌 해당 점에 연결해야합니다. 타원에 (-a,0)에서 (a,0)까지의 장축이있는 경우 (0,-b)의 단축 (b,0)(0,h)의 정점 (h>b 사용), 다음 1 점 접선은 (a*sqrt(1-(b/h)^2), b*(b/h))이고 다른 하나는 동일하지만 x 좌표가 부정됩니다.

원뿔을 올바르게 그리는 MetaPost 코드는 다음과 같습니다.

beginfig(1) a:=2in; b:=.5in; h:= 3in; % for example draw fullcircle xscaled 2a yscaled 2b; % a x b ellipse pair Z[]; Z2 := (0,h); % vertex Z1 := (a*sqrt(1 - (b/h)*(b/h)),b*(b/h)); % right tangency Z3 := (-xpart Z1, ypart Z1); % left tangency draw Z1--Z2--Z3; endfig; end 

저는 TikZ를 사용하지 않으므로 필요한 경우 다른 사람들이 번역을 제공하도록 할 것입니다. (그리고 점선 부분도 제공합니다.)

Answer

Dan의 솔루션 TikZ :

\documentclass[tikz,border=2mm]{standalone} \usetikzlibrary{positioning, calc} \begin{document} \begin{tikzpicture} \newcommand{\radiusx}{2} \newcommand{\radiusy}{.5} \newcommand{\height}{6} \coordinate (a) at (-{\radiusx*sqrt(1-(\radiusy/\height)*(\radiusy/\height))},{\radiusy*(\radiusy/\height)}); \coordinate (b) at ({\radiusx*sqrt(1-(\radiusy/\height)*(\radiusy/\height))},{\radiusy*(\radiusy/\height)}); \draw[fill=gray!30] (a)--(0,\height)--(b)--cycle; \fill[gray!50] circle (\radiusx{} and \radiusy); \begin{scope} \clip ([xshift=-2mm]a) rectangle ($(b)+(1mm,-2*\radiusy)$); \draw circle (\radiusx{} and \radiusy); \end{scope} \begin{scope} \clip ([xshift=-2mm]a) rectangle ($(b)+(1mm,2*\radiusy)$); \draw[dashed] circle (\radiusx{} and \radiusy); \end{scope} \draw[dashed] (0,\height)|-(\radiusx,0) node[right, pos=.25]{$h$} node[above,pos=.75]{$r$}; \draw (0,.15)-|(.15,0); \end{tikzpicture} \end{document} 

여기에 이미지 설명 입력

답변

PSTricks로 재미있게 즐기세요.

\documentclass[pstricks,border=12pt,12pt]{standalone} \usepackage{pst-node} \begin{document} \begin{pspicture}[dimen=m](8,10) \psellipticarc[linestyle=dashed](4,1)(4,.65){0}{180} \psellipticarcn(4,1)(4,.65){0}{180} \psline[linecap=0](0,1)(4,10)(8,1) \pcline[linestyle=dashed](4,10)(4,1)\naput{$h$} \pcline[linestyle=dashed](4,1)(8,1)\naput{$r$} \rput(4,1){\psline(0,9pt)(9pt,9pt)(9pt,0)} \end{pspicture} \end{document} 

이미지 설명 입력 여기에 iption

코멘트

  • 변이 아래쪽 타원에 접해야하므로 기본적으로 불쾌한 실수가 있습니다. 그렇지 않은 경우. 더 크게 그리면 문제가 커집니다.

답변

라이트 콘 은 TikZ에 있으므로 Dan의 답변을 사용하여 만든 것입니다.

\documentclass[tikz]{standalone} \begin{document} \begin{tikzpicture} \def\b{0.2} % semi-minor axis \pgfmathsetmacro{\h}{(1 + sqrt(1 + 4*\b^2)) / 2} \pgfmathsetmacro{\a}{sqrt(\h)} \draw (-1, -1) -- (1, 1); \draw (-1, 1) -- (1, -1); \draw (0, \h) ellipse [x radius = \a, y radius = \b]; \draw (0, -\h) ellipse [x radius = \a, y radius = \b]; \end{tikzpicture} \end{document} 

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다