点、线段和一些 3D 棱柱的渐近线代码 (Overleaf),项目今晚截止!

点、线段和一些 3D 棱柱的渐近线代码 (Overleaf),项目今晚截止!

我很差Asymptote,我需要创建下图的一个版本(如果这不起作用,请参见屏幕截图,但没有不知何故出现在我的屏幕截图中的那个灰点)在此处输入图片描述

\begin{asymptote}
unitsize(0.5cm);

for (int n = 1; n <= 6; ++n) {
picture p;
for (int i =0; i <= 6; ++i) {
draw(p, expi(-pi/2+(2i-1)*pi/n)--expi(-pi/2+(2i+1)*pi/n));
dot(p, expi(-pi/2+(2i-1)*pi/n));
}
add(shift((3*n, cos(pi/n)))*p);
}
\end{asymptote}

除了那些多边形是 3D 的。我正在尝试学习Asymptote,但现在我太忙于编辑我的项目(今晚截止),所以如果有人能asymptote为此创建图表就太好了。我希望这不会太难,如果有人创建图表,我将非常感激 :)

提前致谢!

答案1

欢迎来到 TeX.SX!您可能想阅读TeX.SX 入门指南,这说明这实际上不应该是一个“请帮我做这件事”的网站。您将获得针对具体问题的更好答案,而不是请求帮助完成作业。

有一些很好的教程适用于 Asymptote,如果你真的想要 3D,它可能是最好的工具。但如果你想要展示的 2D 多边形,那么你也可以考虑评论中推荐的 TikZ 或(我的偏好)元帖子

这是 MP 中的图表版本。它已包含在内,luamplib因此您需要使用 进行编译lualatex

在此处输入图片描述

\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\begin{mplibcode}
beginfig(1);
    numeric r; r = 21;
    path C, c; c = fullcircle scaled 2r rotated 90;
    for n=1 upto 6:
        C := c if not odd n: rotated (180/n) fi 
               shifted ((2.8n, sind(90-180/n)) * r);
        draw point 0 of C for i=1 upto n: -- point 8i / n of C endfor;
        for i=1 upto n: 
            drawdot point 8i / n of C withpen pencircle scaled 4; 
        endfor
    endfor
endfig;
\end{mplibcode}
\end{document}

这里唯一棘手的是调整每个圆路径,使绘制在它们周围的多边形位于基线上。这是通过旋转偶数路径并垂直移动sind(90-180/n)半径倍数来实现的。

还要注意,MP 的for循环在需要时可以“内联”使用。

答案2

首先,使用 TikZ(我认为这是最简单的一个):

在此处输入图片描述

\documentclass{article}
\usepackage{tikz,lipsum}
\begin{document}
\lipsum[1]
\begin{center}
\begin{tikzpicture}[thick,nodes={circle,draw,fill=red},inner sep=1.5pt]
\def\a{1} % length of an edge
\path (0,0) node{}; 

\draw[shift={(0:1)}] (0,0) node{}--(0:\a) node{}; 

\draw[shift={(0:3)}] (0,0) node{}--(0:\a) node{}--
([turn]120:\a) node{}--cycle; 

\draw[shift={(0:5)}] (0,0) node{}--(0:\a) node{}--
([turn]90:\a) node{}--
([turn]90:\a) node{}--cycle; 

\draw[shift={(0:7)}] (0,0) node{}--(0:\a) node{}--
([turn]72:\a) node{}--
([turn]72:\a) node{}--
([turn]72:\a) node{}--cycle; 

\draw[shift={(0:9.5)}] (0,0) node{}--(0:\a) node{}--
([turn]60:\a) node{}--
([turn]60:\a) node{}--
([turn]60:\a) node{}--
([turn]60:\a) node{}--cycle; 

\end{tikzpicture}   
\end{center}
\lipsum[10] 
\end{document}

Asymptote稍后会给出代码!

相关内容