我想要画一些类似这样的图:
由于阴影是弯曲的,我决定画一个梯形,然后在其上画一个阴影。问题是我想要梯形角的坐标。这是我的代码
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\usetikzlibrary{shadows}
\usetikzlibrary{shapes.symbols}
\definecolor{mycolor}{rgb}{0.55,0.9,0.55}
\begin{document}
\begin{tikzpicture}[y=.3cm, x=1.2cm,font=\sffamily]
%\node[circle,fill=black] at (0,0) {};
\node[circle,fill=black] at (5.59,-8.3) {};
\node[circle,fill=black] at (-2.1,-8.3) {};
\node[circle,fill=black] at (-5.59,8.3) {};
%rotate = -140
\node[trapezium, minimum width=10cm,trapezium left angle=130, trapezium right angle=50, minimum height = 5cm,fill=mycolor] at (0,0){};
\filldraw[fill=gray]
(5.55,-8.3) -- (5.55,-8) -- (-2.1,-8) -- (-5.6,8) -- (-5.59,8.3) -- (-2.1,-8.3) -- cycle;
\end{tikzpicture}
\end{document}
我尝试通过在任意位置画圆圈来找出坐标,然后手动纠正它们。
有没有办法准确地找到这些坐标?我是不是在想一个很难的方法,有没有一种简单的方法可以做到这一点?
答案1
您可以在图片定义内绘制形状,然后使用该图片在任意位置/比例/角度重复使用该图形。此pic
功能需要最新版本的 Tikz/PGF。
以下是一个例子:
\documentclass{article}
\usepackage{tikz}
\tikzset{
patch/.pic = {
\draw[fill=green!30] (-2,0) to[out=10, in=190] (0,1)
to (2,0)
to[out=-140, in=45] (0,-1)
to[out=145, in=-35] (-2,0)
-- cycle;
\draw[fill=black!60] (0,-1)
to[out=145, in=-35] (-2,0)
-- (-2,-.2) -- (0,-1.5) -- cycle;
\draw[fill=black!30] (2,0)
to[out=-140, in=45] (0,-1)
-- (0,-1.5) -- (2, -.2) -- cycle;
},
}
\begin{document}
\begin{tikzpicture}
\pic at (0,0) {patch};
\pic[scale=0.5, rotate=20] at (2,2) {patch};
\pic[scale=0.5, rotate=-20] at (-2,2) {patch};
\end{tikzpicture}
\end{document}
结果如下: