4

I want to reproduce the next image or improve it, that has depth and an effect of small points like stars.

\documentclass{standalone}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
\clip(-10pt,-10pt) rectangle (610pt,310pt);

\fill[black!95!white] (0,0) rectangle (600pt,300pt);

\node[rotate=45,white] at (80pt,50pt)  {$ \vec{F}=m\vec{a} $};
\node[rotate=-45,white] at (550pt,50pt)  {$ e=m c^2 $};

\node[rotate=45,white] at (50pt,100pt)  {$ \vec{F}=m \frac{d \vec{v}}{dt} + \vec{v}\frac{dm}{dt} $};
\node[rotate=-45,white] at (520pt,100pt)  {$  \vec{F}_g=-F\frac{m_1 m_2}{r^2} \vec{e}_r $};

\node[rotate=45,white] at (70pt,150pt)  {$ \lim_{x \to a} \frac{f(x) - f(a)}{x - a} $};
\node[rotate=-45,white] at (550pt,150pt)  {$ \int_{0}^{\pi} \sin x \, dx = 2 $};

\node[rotate=10,white] at (100pt,250pt)  {$ \frac{d}{dx}\sin x=\cos x $};
\node[rotate=-10,white] at (500pt,250pt)  {$ \frac{d}{dx}\ln(x)=\frac{1}{x} $};

\node[rotate=60,white] at (200pt,150pt)  {$ x = a_0 + \frac{1}{a_1 + \frac{1}{a_2 + \frac{1}{a_3 + a_4}}} $};
\node[rotate=15,white] at (350pt,100pt)  {$ \mathbf{X} = \left(
    \begin{array}{ccc}
    x_1 & x_2 & \ldots \\
    x_3 & x_4 & \ldots \\
    \vdots & \vdots & \ddots
    \end{array} \right) $};
\node[rotate=20,white] at (400pt,250pt)  {$  2H_2 + O_2 {\overset{n,m}{\longrightarrow}} 2H_2O $};

\end{tikzpicture}   

\end{document}

enter image description here

It should look similar to this image.

enter image description here

3

Using my answer here: Placing text on face of 3d cube

In this case I use an isometric view (not perspective) with axis at +/-30 degrees and a 90 degree vertical. However, if each formula is small enough relative to the overall field, then you might be able to adjust each formula to make is singularly isometric with the overall perception as (nearly) being in perspective.

\documentclass{standalone}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{tikz}
\usepackage{graphicx,amssymb,fp}
\newsavebox\foobox
\newcommand\slbox[2]{%
  \FPdiv{\result}{#1}{57.296}% CONVERT deg TO rad
  \FPtan{\result}{\result}%
  \slantbox[\result]{#2}%
}%
\newcommand{\slantbox}[2][30]{%
        \mbox{%
        \sbox{\foobox}{#2}%
        \hskip\wd\foobox
        \pdfsave
        \pdfsetmatrix{1 0 #1 1}%
        \llap{\usebox{\foobox}}%
        \pdfrestore
}}
\newcommand\rotslant[3]{\rotatebox{#1}{\textcolor{white}{\slbox{#2}{#3}}}}
\begin{document}

\begin{tikzpicture}
\clip(-10pt,-10pt) rectangle (610pt,310pt);

\fill[black!95!white] (0,0) rectangle (600pt,300pt);

\node at (80pt,50pt)  {\rotslant{30}{30}{$ \vec{F}=m\vec{a}$}};
\node at (550pt,50pt)  {\rotslant{-30}{30}{$ e=m c^2 $}};

\node at (50pt,100pt)  {\rotslant{30}{30}{$ \vec{F}=m \frac{d \vec{v}}{dt} + \vec{v}\frac{dm}{dt} $}};
\node at (520pt,100pt)  {\rotslant{-30}{-30}{$\vec{F}_g=-F\frac{m_1 m_2}{r^2} \vec{e}_r $}};

\node at (70pt,150pt)  {\rotslant{30}{-30}{$ \lim_{x \to a} \frac{f(x) - f(a)}{x - a} $}};
\node at (550pt,150pt)  {\rotslant{-30}{-30}{$ \int_{0}^{\pi} \sin x \, dx = 2 $}};

\node at (100pt,250pt)  {\rotslant{30}{-30}{$ \frac{d}{dx}\sin x=\cos x $}};
\node at (500pt,250pt)  {\rotslant{-30}{-30}{$ \frac{d}{dx}\ln(x)=\frac{1}{x} $}};

\node at (200pt,150pt)  {\rotslant{30}{30}{$ x = a_0 + \frac{1}{a_1 + \frac{1}{a_2 + \frac{1}{a_3 + a_4}}} $}};
\node at (350pt,100pt)  {\rotslant{-30}{30}{$ \mathbf{X} = \left(
    \begin{array}{ccc}
    x_1 & x_2 & \ldots \\
    x_3 & x_4 & \ldots \\
    \vdots & \vdots & \ddots
    \end{array} \right) $}};
\node at (400pt,250pt)  {\rotslant{-30}{-30}{$  2H_2 + O_2 {\overset{n,m}{\longrightarrow}} 2H_2O $}};

\end{tikzpicture}   

\end{document}

enter image description here

Here is what I was referring to with faux perspective, by manually setting the rotation on individual equations:

\documentclass{standalone}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{tikz}
\usepackage{graphicx,amssymb,fp}
\newsavebox\foobox
\newcommand\slbox[2]{%
  \FPdiv{\result}{#1}{57.296}% CONVERT deg TO rad
  \FPtan{\result}{\result}%
  \slantbox[\result]{#2}%
}%
\newcommand{\slantbox}[2][30]{%
        \mbox{%
        \sbox{\foobox}{#2}%
        \hskip\wd\foobox
        \pdfsave
        \pdfsetmatrix{1 0 #1 1}%
        \llap{\usebox{\foobox}}%
        \pdfrestore
}}
\newcommand\rotslant[3]{\rotatebox{#1}{\textcolor{white}{\slbox{#2}{#3}}}}
\begin{document}
\begin{tikzpicture}
\clip(-10pt,-10pt) rectangle (610pt,310pt);

\fill[black!95!white] (0,0) rectangle (600pt,300pt);

\node at (80pt,50pt)  {\rotslant{43}{43}{
  $ \vec{F}=m\vec{a}$}};
\node at (550pt,50pt)  {\rotslant{-35}{35}{
  $ e=m c^2 $}};
\node at (50pt,100pt)  {\rotslant{38}{38}{
  $ \vec{F}=m \frac{d \vec{v}}{dt} + \vec{v}\frac{dm}{dt} $}};
\node at (520pt,100pt)  {\rotslant{-40}{-40}{
  $\vec{F}_g=-F\frac{m_1 m_2}{r^2} \vec{e}_r $}};
\node at (70pt,150pt)  {\rotslant{32}{-32}{
  $ \lim_{x \to a} \frac{f(x) - f(a)}{x - a} $}};
\node at (550pt,150pt)  {\rotslant{-32}{-32}{
  $ \int_{0}^{\pi} \sin x \, dx = 2 $}};
\node at (100pt,250pt)  {\rotslant{20}{-20}{
  $ \frac{d}{dx}\sin x=\cos x $}};
\node at (500pt,250pt)  {\rotslant{-25}{-25}{
  $ \frac{d}{dx}\ln(x)=\frac{1}{x} $}};

\node at (200pt,150pt)  {\rotslant{42}{42}{
  $ x = a_0 + \frac{1}{a_1 + \frac{1}{a_2 + \frac{1}{a_3 + a_4}}} $}};
\node at (380pt,100pt)  {\rotslant{-39}{39}{
  $ \mathbf{X} = \left(
    \begin{array}{ccc}
    x_1 & x_2 & \ldots \\
    x_3 & x_4 & \ldots \\
    \vdots & \vdots & \ddots
    \end{array} \right) $}};
\node at (400pt,250pt)  {\rotslant{-30}{-30}{
  $  2H_2 + O_2 {\overset{n,m}{\longrightarrow}} 2H_2O $}};
\end{tikzpicture}   
\end{document}

enter image description here

  • To have these projections, you'd only need to load the 3d library and use sth like \begin{scope}[canvas is xz plane at y=0,transform shape] \node{text}; \end{scope}. There are zillions of answers of this type. The problem is: this is not perspective drawing. – user121799 Nov 30 '18 at 18:02
  • @marmot I never claimed they were perspective (in fact, I specifically denied it), though I have emphasized that point now. And as I am not a tikz user, I will have to leave that to others. – Steven B. Segletes Nov 30 '18 at 18:10
  • I did not say you claimed it was perspective but I just wanted to tell you that there is a much simpler way to achieve your output. And I told you what the limitations of this approach are. You can mitigate them by using decorations.text to vary the size of the characters along paths, but AFAIK this does not work with formulae. – user121799 Nov 30 '18 at 18:13
  • @ StevenB.Segletes your construction meets the perspective of the formulas, thank you. – Samuel Diaz Nov 30 '18 at 18:27
1

This is not a too serious answer, but just to substantiate my statement that such things can be done very easily with asymptote. (You need to run e.g. with pdflatex -shell-escape.)

\documentclass[border=3.14mm]{standalone}
\usepackage{asypictureB}
\begin{document}
\begin{asypicture}{name=AsyPers}
import labelpath3;
size(8cm,8cm);
settings.render = 4;
currentprojection = perspective((-0.5,4,0.1), up=Z,autoadjust=true);
currentlight=(2,15,5);
material pens =  material(diffusepen=0.7blue,ambientpen=blue,emissivepen=0.9*white,specularpen=0.95white,shininess=0.95);
draw(scale(0.8,1,-1)*labelpath("$\displaystyle B(p,q)=\frac{\Gamma(p)\,\Gamma(q)}{\Gamma(p+q)}$",
(2*Y+X-Z) -- X-Z),pens);
path3 Back=scale3(3)*plane(X,Z,O);
draw(surface(Back), black);
\end{asypicture}
\end{document}

enter image description here

And before I forget: there are, of course, dedicated TikZ packages and libraries to do the projections.

\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{amsmath,amsfonts,amssymb,mathtools}
\usetikzlibrary{3d}
\usepackage{tikz-3dplot}
\makeatletter % https://tex.stackexchange.com/a/48776/121799
\tikzoption{canvas is xy plane at z}[]{%
  \def\tikz@plane@origin{\pgfpointxyz{0}{0}{#1}}%
  \def\tikz@plane@x{\pgfpointxyz{1}{0}{#1}}%
  \def\tikz@plane@y{\pgfpointxyz{0}{1}{#1}}%
  \tikz@canvas@is@plane
}
\makeatother
\newcommand{\dd}{\ensuremath{\mathrm{d}}}
\begin{document}

\begin{tikzpicture}
%\clip(-10pt,-10pt) rectangle (610pt,310pt);

\fill[black!95!white] (0,0) rectangle (600pt,300pt);
%\tdplotsetmaincoords{90+30*sin(\X)}{\X}
\tdplotsetmaincoords{90+30*sin(40)}{40}
\begin{scope}[tdplot_main_coords,white,transform shape]
 \begin{scope}[canvas is xy plane at z=0,yscale=-1]
  \node at (80pt,5pt)  {$ \vec{F}=m\,\vec{a} $};
  \node at (50pt,10pt)  {$ \vec{F}=m \frac{\dd \vec{v}}{\dd t} 
  + \vec{v}\frac{\dd m}{\dd t} $};
  \node at (270pt,15pt)  {$\displaystyle \lim_{x \to a} \frac{f(x) - f(a)}{x - a} $};
 \end{scope}
 \begin{scope}[canvas is xy plane at z=0]
  \node at (550pt,50pt)  {$ E=m\, c^2 $};
  \node at (520pt,100pt)  {$  \vec{F}_g=-F\,\frac{m_1 m_2}{r^2}\, \vec{e}_r $};
  \node at (550pt,150pt)  {$\displaystyle \int\limits_{0}^{\pi} \sin x \, \dd x = 2 $};
 \end{scope}
 \begin{scope}[canvas is xz plane at y=0]
  \node at (100pt,250pt)  {$\displaystyle \frac{\dd}{\dd x}\sin x=\cos x $};
  \node at (500pt,50pt)  {$\displaystyle \frac{\dd }{\dd x}\ln(x)=\frac{1}{x} $};
  \node at (400pt,50pt)  {$  2\text{H}_2 + \text{O}_2 \xrightarrow{n,m}
  2\text{H}_2\text{O} $};
 \end{scope} 
 \begin{scope}[canvas is yz plane at x=0]
  \node at (200pt,150pt)  {$\displaystyle x = a_0 + \frac{1}{a_1 + \frac{1}{a_2 + \frac{1}{a_3 + a_4}}} $};
  \node at (350pt,300pt)  {$ \mathbf{X} = 
    \begin{pmatrix}
    x_1 & x_2 & \ldots \\
    x_3 & x_4 & \ldots \\
    \vdots & \vdots & \ddots
    \end{pmatrix}$};
 \end{scope}
\end{scope}
\end{tikzpicture}   
\end{document}

enter image description here

As you can see, I made no effort in arranging them nicely (yet I made some adjustments like switching to pmatrix, using \overrightarrow and making symbols like chemical elements and differential d's upright).

  • Interesting this form for the text perspective. In Texworks I managed to configure it to work with pdflatex -shell-escape but not in TeXstudio, my favorite editor is TeXstudio, how to configure it to compile with pdflatex -shell-escape? – Samuel Diaz Dec 1 '18 at 3:07
  • 1
    @SamuelDiaz I am sorry, I have no idea. I just use a text editor and run pdflatex from the terminal. (BTW, one can rotate the tikz-3dplot stuff further. Apart from a simple rotate key in the respective planes, one can use the rotated coordinates to rotate the full plane.) – user121799 Dec 1 '18 at 3:17
  • 1
    For the record: Jake's patch is now incorporated in v3.1 of TikZ. – Stefan Pinnow Jan 15 at 19:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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