![如何在 Asymptote 中的曲线之间填充颜色](https://linux22.com/image/387678/%E5%A6%82%E4%BD%95%E5%9C%A8%20Asymptote%20%E4%B8%AD%E7%9A%84%E6%9B%B2%E7%BA%BF%E4%B9%8B%E9%97%B4%E5%A1%AB%E5%85%85%E9%A2%9C%E8%89%B2.png)
\documentclass[border=5pt]{standalone}
\usepackage{asymptote}
\begin{document}
\begin{asy}
size(5cm);
draw((0,0){up}--{right}(3,3){down}--{left}(1,1){right}--{up}(2,2){left}--{down}(0,0));
draw((0,0){up}..{right}(2,2){left}..{down}(1,1){right}..{up}(3,3){down}..{left}(0,0));
\end{asy}
\end{document}
它产生了下图:
我希望它产生这样的图形:
附言:我是 Asymptote 的新用户……
答案1
使用filldraw
并且路径必须是封闭的,因此您需要添加..cycle
并提供颜色rgb(254,248,128)
。还请注意,varwidth
抑制额外添加的宽度的选项用于获得对称的独立 pdf。
\documentclass[border=5pt,varwidth]{standalone}
\usepackage{asymptote}
\begin{document}
\begin{asy}
size(0,150);
defaultpen(linewidth(1pt));
filldraw((0,0){up}..{right}(3,3){down}..{left}(1,1){right}..{up}(2,2){left}..{down}(0,0)..cycle,rgb(254,248,128));
filldraw((0,0){up}..{right}(2,2){left}..{down}(1,1){right}..{up}(3,3){down}..{left}(0,0)..cycle,rgb(128,127,255));
\end{asy}
\end{document}
更新
要添加网格,请add(grid(x,y));
在包含后使用import geometry;
。您可以更改网格的线型、颜色、宽度等。以下是示例:
\begin{asy}
import geometry;
size(0,150);
defaultpen(linewidth(1pt));
add(grid(3,3,gray+.5bp));
filldraw((0,0){up}..{right}(3,3){down}..{left}(1,1){right}..{up}(2,2){left}..{down}(0,0)..cycle,rgb(254,248,128)+opacity(.8));
filldraw((0,0){up}..{right}(2,2){left}..{down}(1,1){right}..{up}(3,3){down}..{left}(0,0)..cycle,rgb(128,127,255)+opacity(.8));
\end{asy}
答案2
varwidth
如果你使用,则不需要等asypictureB
。这还有其他一些优点。最值得注意的是,你可以在渐近线代码中偷偷携带 TeX 宏。(例如使用pdflatex -shell-escape
The进行编译filldraw
命令在Charles Staats 的教程,的作者asypictureB
。
\documentclass[border=3.14mm]{standalone}
\usepackage{asypictureB}
\begin{document}
\begin{asypicture}{name=fill}
size(0,150);
defaultpen(linewidth(1pt));
filldraw((0,0){up}..{right}(3,3){down}..{left}(1,1){right}..{up}(2,2){left}..{down}(0,0)..cycle,rgb(254,248,128));
filldraw((0,0){up}..{right}(2,2){left}..{down}(1,1){right}..{up}(3,3){down}..{left}(0,0)..cycle,rgb(128,127,255));
\end{asypicture}
\end{document}