为什么这不起作用?我很少使用 LaTeX 和 TikZ;我看不到它。
\begin{tikzpicture}
\coordinate (Zero) at (0,0);
\coordinate[label=below:cell a] (vertexA) at (0, 10);
\coordinate[label={above right:cell b}, label={below right:cell c}]
(vertexB) at (5, 8);
\coordinate(vertexC) at (2.5, 0);
\coordinate(vertexD) at (12, 4);
\coordinate (centroidCellA) at ($ 1/3*((vertexA)+(vertexB)+(vertexC)) $);
\end{tikzpicture}
我明白了
! Package pgf Error: No shape named (vertexA is known.
答案1
坐标计算的语法是
<factor>*<coordinate><modifiers>
问题是(vertexA)+(vertexB)+(vertexC)
不是坐标。您必须告诉tikz
它您希望它计算 处的坐标(vertexA)+(vertexB)+(vertexC)
。这将起作用:
\coordinate (centroidCellA) at ($ 1/3*($(vertexA)+(vertexB)+(vertexC)$) $);
(您可以嵌套坐标计算)。
答案2
Jan 的回答很完美。另一种可能性是
\documentclass{scrartcl}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\coordinate(vertexA) at (0, 10);
\coordinate (vertexB) at (5, 8);
\coordinate(vertexC) at (2.5, 0);
%\coordinate (centroidCellA) at ($ 1/3*($(vertexA)+(vertexB)+(vertexC)$) $);
\coordinate (centroidCellA) at (barycentric cs:vertexA=1 ,vertexB=1,vertexC=1);
\end{tikzpicture}
\end{document}