Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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.

share|improve this question
    
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
1  
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

1 Answer 1

up vote 10 down vote accepted

I've found several related answers:

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.
%
% See the file doc/generic/pgf/licenses/LICENSE for more details.

\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}
{%
  \pgfset{/tikz/cs/.cd,angle=0,radius=0,z=0,#1}%
  \pgfpointcylindrical{\tikz@cs@angle}{\tikz@cs@radius}{\tikz@cs@z}%
}

\tikzdeclarecoordinatesystem{xyz spherical}
{%
  \pgfset{/tikz/cs/.cd,angle=0,radius=0,latitude=0,longitude=0,#1}%
  \pgfpointspherical{\tikz@cs@angle}{\tikz@cs@latitude}{\tikz@cs@radius}%
}

\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}{%
  \tikz@addtransform{\pgftransformshift{\pgfpointxyz{0}{0}{#1}}}%
}
\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}%
  \edef\pgf@marshal{\noexpand\tikz@addtransform{%
      \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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.