我一直在使用如下代码在 3D 空间中绘制 2D 特征:
\begin{tikzpicture}[x={(-0.2cm,-0.4cm)}, y={(1cm,0cm)}, z={(0cm,1cm)}]{
\begin{scope}[canvas is yx plane at z=1]
\draw[fill=blue,opacity=0.3] (0,0) circle (3cm);
\end{scope}
\end{tikzpicture}
我现在想扭曲我所绘制范围的 z 坐标。也就是说,z=1
我不仅仅在高度 处绘制,而是想使其成为和z
的函数。x
y
这(相对而言)是否很容易实现?如果有帮助的话,我想最终我想要的只是分段的z = x^2
某个固定值x
,然后是一个常数值。
答案1
是的,可以声明自己的坐标系。正如 Andrew 所说,您可能希望使示例更加具体和完整,但这里有一些东西可以告诉您它是如何工作的。
\documentclass[tikz,border=3mm]{standalone}
\makeatletter
\define@key{weirdkeys}{x}{\def\myx{#1}}
\define@key{weirdkeys}{y}{\def\myy{#1}}
\define@key{weirdkeys}{z}{\def\myz{#1}}
\tikzdeclarecoordinatesystem{weird}%
{%
\setkeys{weirdkeys}{#1}%
\pgfpointxyz{\myx}{\myy}{\myz+\myx*\myx}
}
\makeatother
\begin{document}
\begin{tikzpicture}[x={(-0.2cm,-0.4cm)}, y={(1cm,0cm)}, z={(0cm,1cm)}]
\foreach \X in {1,2,3}
{\fill (weird cs:x=\X,y=\X,z=0) circle[radius=1pt];}
\end{tikzpicture}
\end{document}