我想使用 Asymptote 创建一个带有网格的球体。我已经能够创建一个带有水平线的球体,但我找不到如何制作垂直线。这是我目前的代码:
\documentclass[12pt]{article}
\usepackage{asymptote}
\begin{document}
\begin{figure}
\begin{asy}
//import three;
import solids;
unitsize(2.5inch);
//size(5inch);
settings.render=0;
settings.prc=false;
currentprojection=orthographic(3, 1, 1);
currentlight=nolight;
real RE=0.6, RS=0.7, inc=100, lat=45, lon=45, tlat=50, tlon=100;
revolution Earth=sphere(O, RE, n=4*nslice);
draw(surface(Earth), lightgrey+opacity(.4));
draw(Earth,m=10,gray);
\end{asy}
\end{figure}
\end{document}
如何添加垂直线?
答案1
我有一个解决方案。这个想法是,在绘制阴影表面时,您应该分别指定 Surfacepen 和 Meshpen,这样网格(即网格)就会被绘制为可见的。为了使输出合理,我还增加了表面的不透明度,这样更容易分辨哪些线在前面,哪些在后面。
不幸的是,如果您确实想要骨架所提供的虚线,那么此解决方案并不适用。
\documentclass[12pt]{article}
\usepackage{asymptote}
\begin{document}
\begin{figure}
\begin{asy}
//import three;
import solids;
unitsize(2.5inch);
//size(5inch);
settings.render=0;
settings.prc=false;
currentprojection=orthographic(3, 1, 1);
currentlight=nolight;
real RE=0.6, RS=0.7, inc=100, lat=45, lon=45, tlat=50, tlon=100;
revolution Earth=sphere(0, RE) //Removed the specification of n
//Added specification for mesh pen
draw(surface(Earth), surfacepen=lightgrey+opacity(.6), meshpen=0.6*white);
//The next line is no longer necessary.
//draw(Earth,m=10,gray);
\end{asy}
\end{figure}
\end{document}
输出: [注:放大的尺寸是因为我使用 Apple Previewer 创建 png 文件时将分辨率提高了一倍,因为担心会出现颗粒感;这与 Asymptote 无关。]