为 TiKZ 图片设置坐标系

为 TiKZ 图片设置坐标系

我想使用 TiKZ 以编程方式生成独立的 PDF 图表。我有一个应用程序可以生成线和弧等的简单几何图形,我想从该简单几何图形创建(例如使用 Ruby)TikZ 图表文本文件。

我有每个几何块的边界框(AABB),我的问题是,最惯用的 TiKZ 和 LaTeX/ConTeXt 方式是什么,以指定应用程序几何边界和 TiKZ 绘图边界之间实际上是窗口到视口的转换?

我知道我可以使用:

\begin{tikzpicture}[x=2cm,y=1.5cm] 

设置距离单位和:

scale=1.5 

参数,但我怀疑还有更好的方法。

任何建议都非常感谢,

答案1

我不确定这是你想要的,但可能你想要这样的东西:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{arrows}

\begin{document}

\newcommand{\xangle}{10}
\newcommand{\yangle}{110}
\newcommand{\zangle}{45}

\newcommand{\xlength}{1}
\newcommand{\ylength}{1.7}
\newcommand{\zlength}{0.6}

\pgfmathsetmacro{\xx}{\xlength*cos(\xangle)}
\pgfmathsetmacro{\xy}{\xlength*sin(\xangle)}
\pgfmathsetmacro{\yx}{\ylength*cos(\yangle)}
\pgfmathsetmacro{\yy}{\ylength*sin(\yangle)}
\pgfmathsetmacro{\zx}{\zlength*cos(\zangle)}
\pgfmathsetmacro{\zy}{\zlength*sin(\zangle)}

\begin{tikzpicture}
[   x={(\xx cm,\xy cm)},
    y={(\yx cm,\yy cm)},
    z={(\zx cm,\zy cm)},
]
\draw[-latex,red] (-1,0,0) -- (3.5,0,0) node[label=\xangle:x] {};
\draw[-latex,blue] (0,-1,0) -- (0,3.5,0) node[label=\yangle:y] {};
\draw[-latex,black] (0,0,-1) -- (0,0,3.5) node[label=\zangle:z] {};

\foreach \c in {-1,...,3}
{   \fill[red] (\c,0,0) circle (0.05cm);
    \fill[blue] (0,\c,0) circle (0.05cm);
    \fill[black] (0,0,\c) circle (0.05cm);
}
\end{tikzpicture}

\end{document}

在此处输入图片描述

您可以将全部轴指定为x={(x-component,y-component)}。在此示例中,您可以指定坐标轴指向的角度 ( xangle) 及其长度 ( xlength)。由此,组件将自动计算。在 TikZ 图片的选项中,我写了\xx cm,否则 TikZ 将假定测量值以点为单位给出,从而导致图片非常小。尝试使用 xyzangle和 xyzlength来查看图片变化。

相关内容