![渐近线:圆盘上的 3D 图形](https://linux22.com/image/393245/%E6%B8%90%E8%BF%91%E7%BA%BF%EF%BC%9A%E5%9C%86%E7%9B%98%E4%B8%8A%E7%9A%84%203D%20%E5%9B%BE%E5%BD%A2.png)
有没有一种简单的方法可以在圆盘域上绘制 3D 图形?假设 z=x^2-y^2,其中 x^2+y^2<1。
[我刚开始使用渐近线;这一页向我解释了如何在矩形域中执行此操作。我希望这是一个简单的问题。
答案1
确保这一点的一种方法x^2+y^2<1
是使用极坐标。然后x=r cos(phi)
和y=r sin(phi)
。
\documentclass[variwidth,border=3.14mm]{standalone}
\usepackage{asypictureB}
\begin{document}
\begin{asypicture}{name=discgraph}
usepackage("mathrsfs");
import graph3;
import solids;
import interpolate;
settings.outformat="pdf";
size(500);
defaultpen(0.5mm);
pen darkgreen=rgb(0,138/255,122/255);
draw(Label("$x$",1),(0,0,0)--(1.2,0,0),darkgreen,Arrow3);
draw(Label("$y$",1),(0,0,0)--(0,1.2,0),darkgreen,Arrow3);
draw(Label("$f(x,y)$",1),(0,0,0)--(0,0,0.6),darkgreen,Arrow3);
//function: call the radial coordinate r=t.x and the angle phi=t.y
triple f(pair t) {
return ((t.x)*cos(t.y), (t.x)*sin(t.y),
((t.x)*cos(t.y))^2-((t.x)*sin(t.y))^2);
}
surface s=surface(f,(0,1),(0.49,2.5*pi),32,16,
usplinetype=new splinetype[] {notaknot,notaknot,monotonic},
vsplinetype=Spline);
pen p=rgb(0,0,.7);
draw(s,lightolive+white);
\end{asypicture}
\end{document}