另一个版本

另一个版本

我搜索了很久,但还是没能找到解决问题的方法。我想用 LaTeX 中的 tikz 画一个平行四边形。然后,我想沿着平行四边形的边(不是水平/垂直的,而是某种程度上的对角线)对平行四边形进行着色。我只找到了水平/垂直着色平行四边形的可能性,与平行四边形的方向无关。

答案1

一种使用基本迭代技巧的选项,用于制作假阴影,但它是纯二维的,如果你想要一个真正的三维结果,你必须看到 Asymptote 来获得这样的结果如何在乳胶中创建喇叭圆环?此外,pgf-plots 还允许管理表面颜色,例如示例_171.pdf

结果: 在此处输入图片描述

梅威瑟:

% arara: pdflatex: {synctex: yes, action: nonstopmode}
% arara: animate: {density: 200, delay: 20, other: -background white -alpha remove}
% arara: showanimate
\documentclass[tikz,border=20pt]{standalone}
\usepackage{tkz-euclide}
\usetikzlibrary{calc}
\usetkzobj{all}

\begin{document}
\foreach \A in {0,1,...,15,14,13,...,0}{
\begin{tikzpicture}
    % Set limits.
    \tkzInit[xmax=7,xmin=-2,ymax=4, ymin=-3.5]
    \tkzGrid[sub,color=blue!20!,subxstep=.5,subystep=.5]
    \tkzClip

    %Define principal points.
    \tkzDefPoint(\A*0.05,-1+\A*0.1){A} 
    \tkzDefPoint(2-\A*0.2,-\A*0.15){B}
    \tkzDefPoint(3+\A*0.08,2-\A*0.1){C}
    \tkzDefLine[parallel=through C](B,A) \tkzGetPoint{D}  

    %Label the points
    \tkzLabelPoints[color=blue,below=5pt](A,B)
    \tkzLabelPoints[color=blue,above=5pt](C,D)

    % Draw all the shades.
    \foreach \i in {0,1,...,30}{
        \node(m) at ($(D)!\i/30!(A)$){};
        \node(n) at ($(C)!\i/30!(B)$){};
        \fill [blue, fill opacity=1/30] 
        (A) -- (m.center) -- (n.center) -- (B) -- cycle;
    }
    %Draw the segments
    \tkzDrawSegments[thick](A,B B,C C,D D,A)
\end{tikzpicture}}
\end{document}

PSD:它生成一个带有动画帧的 pdf 文档,然后转换成我使用的 .gifImagemagick 转换器

答案2

使用 键,shading angle=<>您可以按任意方向旋转阴影。如果您需要更精细的控制,您还可以定义自己的阴影,有关此内容,请参阅 tikz 手册第 109.3 节。

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{shapes}

\begin{document}

\begin{tikzpicture}
\node[trapezium, draw,trapezium left angle=120, trapezium right angle=60,shade,shading=axis,shading angle=100] at (0,0) {};
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案3

PSTricks 解决方案。

\documentclass[pstricks,border=10mm]{standalone}
\begin{document}
\foreach \i in {0,10,...,170}{%
\begin{pspicture}(6,4)
    \pspolygon[fillstyle=vlines,hatchangle=\i](0,0)(4,0)(6,4)(2,4)
    \rput*(3,2){$\i^\circ$}
\end{pspicture}}
\end{document}

在此处输入图片描述

另一个版本

\documentclass[pstricks,border=10mm]{standalone}
\begin{document}
\foreach \i in {0,10,...,80}{%
\begin{pspicture}(6,4)
    \pspolygon[fillstyle=crosshatch,hatchcolor=red,hatchangle=\i](0,0)(4,0)(6,4)(2,4)
    \rput*(3,2){$\i^\circ$}
\end{pspicture}}
\end{document}

在此处输入图片描述

相关内容