# Documentation of the tikz 3d library

Where can I find the documentation of the tikz 3d library? There seems to be no such section in the manual and google didn't help me in this case.

-
And whay you mean with tikz3d library? I was having no problem finding answers about 3D in PGF/TikZ manual. –  m0nhawk Oct 9 '12 at 6:33
The library you can load via \usetikzlibrary{3d}. If I search the pdf of the manual I only get things about 3d charts. Could you point me to the correct pages in the manual? –  student Oct 9 '12 at 6:40

So, I've went and look into the sources of TikZ 3D library, here it is (all):

% Copyright 2006 by Till Tantau
%
% This file may be distributed and/or modified
%
% 1. under the LaTeX Project Public License and/or
% 2. under the GNU Public License.
%

\ProvidesFileRCS[v\pgfversion] $Header: /cvsroot/pgf/pgf/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary3d.code.tex,v 1.1 2008/01/09 17:57:15 tantau Exp$

% New coordinate systems:
\tikzdeclarecoordinatesystem{xyz cylindrical}
{%
}

\tikzdeclarecoordinatesystem{xyz spherical}
{%
}

\pgfset{/tikz/cs/longitude/.store in=\tikz@cs@angle}
\pgfset{/tikz/cs/latitude/.store in=\tikz@cs@latitude}

% Options for transforming into a plane:
\tikzoption{plane origin}{\def\tikz@plane@origin{\tikz@scan@one@point\pgfutil@firstofone#1}}
\tikzoption{plane x}{\def\tikz@plane@x{\tikz@scan@one@point\pgfutil@firstofone#1}}
\tikzoption{plane y}{\def\tikz@plane@y{\tikz@scan@one@point\pgfutil@firstofone#1}}

\let\tikz@plane@origin=\pgfpointorigin
\def\tikz@plain@x{\pgfpointxy{1}{0}}
\def\tikz@plain@y{\pgfpointxy{0}{1}}

\tikzoption{canvas is plane}[]{
\tikz@canvas@is@plane
}
\tikzoption{canvas is xy plane at z}{%
}
\tikzoption{canvas is yx plane at z}[]{%
\def\tikz@plane@origin{\pgfpointxyz{0}{0}{#1}}%
\def\tikz@plane@x{\pgfpointxyz{0}{1}{#1}}%
\def\tikz@plane@y{\pgfpointxyz{1}{0}{#1}}%
\tikz@canvas@is@plane
}
\tikzoption{canvas is xz plane at y}[]{%
\def\tikz@plane@origin{\pgfpointxyz{0}{#1}{0}}%
\def\tikz@plane@x{\pgfpointxyz{1}{#1}{0}}%
\def\tikz@plane@y{\pgfpointxyz{0}{#1}{1}}%
\tikz@canvas@is@plane
}
\tikzoption{canvas is zx plane at y}[]{%
\def\tikz@plane@origin{\pgfpointxyz{0}{#1}{0}}%
\def\tikz@plane@x{\pgfpointxyz{0}{#1}{1}}%
\def\tikz@plane@y{\pgfpointxyz{1}{#1}{0}}%
\tikz@canvas@is@plane
}
\tikzoption{canvas is yz plane at x}[]{%
\def\tikz@plane@origin{\pgfpointxyz{#1}{0}{0}}%
\def\tikz@plane@x{\pgfpointxyz{#1}{1}{0}}%
\def\tikz@plane@y{\pgfpointxyz{#1}{0}{1}}%
\tikz@canvas@is@plane
}
\tikzoption{canvas is zy plane at x}[]{%
\def\tikz@plane@origin{\pgfpointxyz{#1}{0}{0}}%
\def\tikz@plane@x{\pgfpointxyz{#1}{0}{1}}%
\def\tikz@plane@y{\pgfpointxyz{#1}{1}{0}}%
\tikz@canvas@is@plane
}

% Transformation code
\def\tikz@canvas@is@plane{
\pgf@process{\tikz@plane@x}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\pgf@process{\tikz@plane@y}%
\pgf@xb=\pgf@x%
\pgf@yb=\pgf@y%
\pgf@process{\tikz@plane@origin}%
\noexpand\pgftransformtriangle
{\noexpand\pgfqpoint{\the\pgf@x}{\the\pgf@y}}
{\noexpand\pgfqpoint{\the\pgf@xa}{\the\pgf@ya}}
{\noexpand\pgfqpoint{\the\pgf@xb}{\the\pgf@yb}}
\noexpand\pgftransformscale{0.035146}%
\noexpand\pgfsetxvec{\noexpand\pgfpoint{1cm}{0cm}}%
\noexpand\pgfsetyvec{\noexpand\pgfpoint{0cm}{1cm}}%
\noexpand\pgfsetzvec{\noexpand\pgfpoint{0cm}{0cm}}%
}}%
\pgf@marshal%
}

\endinput


Looks simple and, not, yet documented. Summarizing, it introduce some new coordinates systems:

• xyz cylindrical with angle, radius and height as parameters.
• xyz spherical with angle, latitude and radius as an option introduces longtitude as an angle define.

And a new TikZ option to set, where to draw:

plane origin
plane x
plane y
canvas is plane
canvas is xy plane at z
canvas is yx plane at z
canvas is xz plane at y
canvas is zx plane at y
canvas is yz plane at x
canvas is zy plane at x


That's all.

-