绘制圆锥曲线(椭圆)

绘制圆锥曲线(椭圆)

我正在寻找一种简单的方法来绘制(最好使用TikZ)一个带有平面的圆锥体,以便向我的学生展示椭圆的来源。这是我担任高中老师的第一年,由于今年在家授课是常态,所以我想制作精美的图像以用于教材中,而不仅仅是编写方程式并告诉他们这些东西的来源。

我读过了: 绘制四个圆锥截面

还: 如何用 TikZ 绘制一个具有高度和半径的简单圆锥体?

尝试更好地理解和阐述一种方法,但我一开始就陷入了困境。我发现我不仅不能创造形象,我也不会理解这些帖子的答案。

我正在使用该beamer课程,但将来我也希望能够在工作表上使用这些绘图。我还咨询了其他网站,它们似乎建议使用该pst-solides3d软件包,但我也看到我不能使用它pdflatex......

这是我目前拥有的代码(制作了一个粗糙的圆锥体,并决定了椭圆将出现在其上的点)。

\usepackage{pgfplots}
%\pgfplotsset{compat=1.3}
\pgfkeys{/pgf/number format/.cd,use comma}
\usepgfplotslibrary{fillbetween,statistics}
\usepackage{tikz,tikz-3dplot} %Para fazer desenhos
\usetikzlibrary{shapes.multipart,shapes.geometric,calc,angles,positioning,intersections,quotes,decorations,babel,patterns,fit,arrows.meta,backgrounds,shadings,matrix,through,trees,mindmap,3d}

这是我的前言。现在,在 的一个框架中beamer,我有:

\begin{tikzpicture}

%The Cone
\draw [dashed] (-1,0) arc (170:10:1.01 and 0.4) -- (1,0);
\draw (-1,0) -- (0,3) -- (1,0) arc(-10:-170:1.01 and 0.4) --cycle;

%The Ellipse's starting and end points
\path (-1,0) -- (0,3) coordinate [near end] (A);
\path (0,3) -- (1,0) coordinate [midway] (B);
\end{tikzpicture}

下面是我要尝试制作的图像。它不需要有颜色(对我来说,只有“线框”就足够了,尽管我很乐意为椭圆添加颜色,以便使其更清晰)。 在此处输入图片描述

有没有更简单的方法来实现预期结果?如果可能的话,请解释一下这些步骤,这样我就不会只是复制粘贴,而是可以学习 :-)

提前致谢!

答案1

这不是对你问题的回答,但我想说的是,使用 绘制漂亮的图像很耗时TikZ,不过有一款不错的软件可以实现这一点,那就是GeoGebra。只需点击几下鼠标,它就可以绘制更多、漂亮、复杂和动画的图片。

在此处输入图片描述

无论如何,如果您想使用 进行绘制TiKz,常见的技巧是,首先您应该对相交椭圆方程进行一些微积分(如果没关系,请选择任意椭圆)并分三步绘制形状:

  1. 首先是圆锥体的下部,然后
  2. opacity=0.5用和绘制平面
  3. 最后画出圆锥体的上方部分。

对于圆形截面来说,绘制起来比较容易,但在其他情况下,绘制起来就比较复杂。

简单示例:

\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{width=7cm,compat=1.8}
\begin{document}
  \begin{tikzpicture}
    \begin{axis}[view={20}{40},hide axis, domain=0:1,
    y domain=-1:1, xmin=-1.5, xmax=1.5,
    ymin=-1.5, ymax=1.5, zmin=0.0]%

        \addplot3[surf, domain=0:0.85, domain y=-1:1,
        mesh/interior colormap=
        {blueblack}{color=(black) color=(blue)},
        colormap/blackwhite, 
        samples=20,
        samples y=40,
        z buffer=sort,] 
        ({x*cos(deg((y+1)*pi))},{x*sin(deg((y+1)*pi))},{x});

        \addplot3 [surf,domain=-.5:1.2, domain y=-1.5:1,samples=2, samples y=2,opacity=0.5]({x},{y},{.85});
        
        \addplot3[surf, domain=0.85:1, domain y=-1:1,
        mesh/interior colormap=
        {blueblack}{color=(black) color=(blue)},
        colormap/blackwhite, 
        samples=20,
        samples y=40,
        z buffer=sort,] 
      ({x*cos(deg((y+1)*pi))},{x*sin(deg((y+1)*pi))},{x});
%      
    \end{axis}
  \end{tikzpicture}  
\end{document}

输出:

在此处输入图片描述

相关内容