我想使用 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
来查看图片变化。