XYZ 坐标系的问题

XYZ 坐标系的问题

也许我的语法有错误,但我认为我发现了一个问题。

\documentclass[11pt]{scrartcl}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[x = {(sin(-60) cm,-cos(-60) cm)},
                    y = {(0.866 cm,-0.5 cm)},
                    z = {(0cm,1cm)},
                    scale = 4]  
 \draw[->] (0,0,0) -- (1,0,0);
 \draw[->] (0,0,0) -- (0,1,0);
 \draw[->] (0,0,0) -- (0,0,1); 
 \draw circle (1);   
\end{tikzpicture} 

\end{document} 

我可以将其cos(60)用于第二个坐标,但不能将其sin(60)用于第一个坐标。

问题是如何解决这个问题。有什么更好的方法吗?我可以使用类似\xcoordwith 的方法\pgfmathsetmacro\xcoord{sin(-60)},但也许有更好的方法。

答案1

正如 Marco Daniel 指出的那样,你可以让 TikZ 通过将表达式括在花括号中来解析表达式。要将结果解释为厘米,你可以将表达式乘以* 1cm

\documentclass[11pt]{article}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[x = {({sin(-60)*1cm},{-cos(60)*1cm})},
                    y = {(0.866 cm,-0.5 cm)},
                    z = {(0cm,1cm)},
                    scale = 4]  
 \draw[->] (0,0,0) -- (1,0,0);
 \draw[->] (0,0,0) -- (0,1,0);
 \draw[->] (0,0,0) -- (0,0,1); 
 \draw circle (1);   
\end{tikzpicture} 

\end{document} 

相关内容