tikz 库structuralanalysis
提供了该point
命令。
%------------------------------------------------
% point
%------------------------------------------------
% \point{name}{x-coordiante}{y-coordiante}
%
\newcommandx{\point}[3]{
\node[coordinate][
shift={(#2*\scalingParameter,
#3*\scalingParameter)}](#1){};
}
因此,使用这个包我可以通过以下方式定义点:
\point{a}{0}{0};
\point{b}{2}{3};
并通过(也使用calc
包):
\point{c}{$(a)+(b)$};
我还想使用该3dstructuralanalysis
库在 3d 中使用最后一行代码。该库提供了dpoint
3d 点的命令。
%------------------------------------------------
% 3dpoint
%------------------------------------------------
% \point{name}{x-coordiante}{y-coordiante}{z-coordiante};
%
\newcommandx{\dpoint}[4]{
\node[coordinate][
shift={(#2*\DscalingParameter,
#3*\DscalingParameter,
#4*\DscalingParameter)}](#1){};
\ifthenelse{\equal{\DshowPointParameter}{1}}{
\draw (#2*\DscalingParameter,
#3*\DscalingParameter,
#4*\DscalingParameter) node [above,red]{#1};
}{}
}
因此,使用这个包我可以通过以下方式定义点:
\dpoint{a}{0}{0}{0};
\dpoint{b}{2}{3}{4};
但不是
\dpoint{c}{$(a)+(b)$};
那么问题是,有没有办法在3d中实现这种坐标的计算?
答案1
在底层,\point
只需\dpoint
创建普通的 TikZ 节点。这样你就可以直接将库中的所有算法calc
应用于这些节点。例如
\documentclass{article}
\usepackage{3dstructuralanalysis}
\begin{document}
\begin{tikzpicture}
\dpoint{a}{1}{1}{1};
\dpoint{b}{2}{3}{4};
\coordinate (c) at ($(a)+(b)$);
\foreach \p in {a,b,c}
\node at (\p) {\p};
\end{tikzpicture}
\end{document}