![enter image description here](https://i.stack.imgur.com/gbejz.png)
\documentclass[11pt]{scrartcl}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzpicture}
\tikzset{oplus/.style={path picture={%
\draw[black]
(path picture bounding box.south west) -- (path picture bounding box.north east)
(path picture bounding box.north west) -- (path picture bounding box.south east);
}}}
\node[oplus,fill=blue!10,draw=blue,thick,circle, scale=10] {};
\end{tikzpicture}
\begin{tikzpicture}
\node [draw,scale=8,diamond,fill=orange!50]{};
\end{tikzpicture}
\end{document}
I think that the key here is where to put all the points (its coordinates). This can be a very good example of how to use the calc
library which allows to situate one coordinate relative to another. And it's better to draw this one in 2d IMHO.
For example:
\documentclass[tikz,border=2mm]{standalone}
\usepackage{amsmath} % \boldsymbol
\usetikzlibrary{calc,decorations.pathreplacing} % decorations is for the 'underbrace'
\tikzset
{
surface/.style={blue,shading=ball,fill opacity=0.4},
plane/.style={green!40!black,fill=green!30!black,fill opacity=0.3},
curve/.style={blue,thick},
underbrace/.style={decorate,decoration={brace,raise=1mm,amplitude=1mm,mirror}},
}
\begin{document}
\begin{tikzpicture}[line cap=round,line join=round,scale=2]
% coordinates
\coordinate (O) at (0,0);
\coordinate (X) at (234:2.5);
\coordinate (Y) at (353:4.5);
\coordinate (Z) at (0,3.2);
\coordinate (A) at ($(O)!0.06!(Y)$);
\coordinate (B) at ($(A)+(0,2.8)$);
\coordinate (C) at ($(B)+(322:2.8)$);
\coordinate (D) at ($(C)+(A)-(B)$);
\coordinate (E) at ($(A)!0.75!(B)$);
\coordinate (P') at ($(A)!0.27!(D)$);
\coordinate (Q') at ($(A)!0.64!(D)$);
\coordinate (P) at ($(P')+(0,2.4)$);
\coordinate (Q) at ($(Q')+(0,2.15)$);
\coordinate (Sx) at ($(O)!0.72!(X)$);
\coordinate (Sy) at ($(O)!0.9!(Y)$);
\coordinate (Sz) at ($(O)!0.62!(Z)$);
\coordinate (T1) at ($(P)-(322:1)$);
\coordinate (T2) at ($(P)+(322:1.3)$);
\coordinate (R1) at ($(P')-(X)$);
\coordinate (R2) at ($(Q')-(Y)$);
\coordinate (R3) at (intersection of P'--R1 and Q'--R2);
% axes
\draw[-latex] (O) -- (X) node (X) [left] {$x$};
\draw[-latex] (O) -- (Y) node (Y) [right] {$y$};
\draw[-latex] (O) -- (Z) node (Z) [above] {$z$};
% plane, back
\draw[plane] (D) to[out=90,in=305] (Q) to [out=125,in=322] (P) to[out=142,in=10] (E) -- (A) -- cycle;
% surface S
\draw[surface] (Sx) to[out=-25,in=200,looseness=0.7] (D) to[out=20,in=240,looseness=0.7] (Sy)
to[out=100,in=10] (E) to[out=190,in=20] (Sz) to[out=220,in=100] cycle;
% plane, front
\draw[plane] (D) to[out=90,in=305] (Q) to [out=125,in=322] (P)
to[out=142,in=10] (E) -- (B) -- (C) -- cycle;
% curve C
\draw[curve] (D) to[out=90,in=305] (Q) to [out=125,in=322] (P) to[out=142,in=10] (E);
% tangent
\draw[thick,red] (T1) -- (T2);
% triangle
\draw[dashed] (P) -- (P') -- (R3) node[pos=0.4,left] {$ha$} -- (Q') node[midway,below] {$hb$} -- (Q);
\draw (R3) ++ (54:0.1) --++ (353:0.15) -- ($(R3)+(353:0.15)$);
% vector
\draw[thick,red,-latex] (P') -- ($(P')!0.7!(D)$) node [midway,yshift=3mm] {$\boldsymbol{\mathrm{u}}$};
% points
\foreach\i in{P',Q',P,Q}
\fill (\i) circle [radius=.25mm];
% labels
\draw[latex-,shorten <=2mm,shorten >=4mm] (P) -- (1.8, 2.3) node {$P(x_0,y_0,z_0)$};
\draw[latex-,shorten <=2mm,shorten >=2mm] (Q') -- (1.6,-1.6) node {$Q'(x,y,0)$};
\draw[underbrace] (P') -- (Q') node [pos=0.3,yshift=-5mm] {$h$};
\node at (Q) [right] {$Q(x,y,z)$};
\node at (P') [left] {$P'(x_0,y_0,0)$};
\node at (T1) [below] {$T$};
\node at (-1.1,0.7) [blue] {$S$};
\node at (2.1,0.7) [curve] {$C$};
\end{tikzpicture}
\end{document}
![enter image description here](https://i.stack.imgur.com/nQk3u.png)
Best Answer
This can give you a starting point:
The result:
TikZ
was used to produce this example.The main shapes used were
rectangle split
(from theshapes.multipart
library),rectangle callout
(from theshapes.callouts
library) andmatrix of nodes
(from thematrix
library).Styles were used to simplify the code; positioning of the elements was achieved using the
positioning
andcalc
libraries.