Je dessine une implantation de caméras. La convention est de dessiner en plan les appareils de prise de vue par un carré (qui représente le corps de la caméra) auquel est accolé un triangle isocèle (qui représente son objectif et, partant, son angle de prise de vue). Ça ressemblerait vaguement à ce schéma : Je cherche donc à représenter un carré et un triangle. Faute de connaître quelque chose qui serait plus adapté, j'ai choisi la librairie TikZ « shapes » : \documentclass[tikz , border = 2 mm ]{standalone} \usetikzlibrary{shapes.geometric} \tikzset{ shape square/.style = { color = black!30, draw, fill = yellow!30, inner xsep = 2.5 cm, inner ysep = 2.5 cm } } \tikzset{ shape triangle/.style = { color = black!30, draw, fill = red!30, inner xsep = 2 cm, inner ysep = 2 cm } } \begin{document} \Huge \begin{tikzpicture} \node[name = skware, shape = rectangle, shape square] {} ; \node[name = treeangle, shape = isosceles triangle, shape triangle, inner xsep = 1 cm, rotate = 180] at (skware.east){} ; \end{tikzpicture} \end{document} Je voudrais que l' EDIT : je suis également preneur de toute suggestion permettant d'imiter ledit schéma sans utiliser cette librairie ! Le tout est que je puisse le positionner sur mon plan à plusieurs reprises et que les objectifs pointent dans différentes directions (chose que je pense réaliser via le paramètre Enfin, je suis tout à fait prêt à reconnaître que, si ça se trouve, je suis victime du syndrome XYZ ! |
C'est un bel exemple où l'utilisation des Ici, je définis la
Ces paramètres sont stockés dans des macros mais comme le code dessinant la caméra est dans un groupe (entre Lors du dessin d'une \documentclass{standalone} \usepackage{tikz} \tikzset{ % on crée la famille 'camera' pour définir ses clés camera/.is family, % quelques paramètres, camera/rotate/.store in=\cameraangle, camera/size/.store in=\camerasize, camera/fill/.store in=\camerafill, camera/draw/.store in=\cameradraw, % le style définissant les valeurs par défaut camera/default/.style={ rotate=0, size=1cm, fill=white, draw=black, }, % la camera elle-même camera/.pic={ \bgroup % on récupère les paramètres (via la famille 'camera') \tikzset{camera,default,#1} \coordinate (-center) at (0,0); \begin{scope}[rotate around={\cameraangle:(-center)}] % lens \path[draw=\cameradraw,fill=\camerafill,rounded corners=.5mm] (-center) ++(.3*\camerasize,0) -- ++(.6*\camerasize,-.45*\camerasize) -- ++(0,.9*\camerasize) -- cycle; % body \path[draw=\cameradraw,fill=\camerafill,rounded corners=.5mm] (-center) ++(-.6*\camerasize,-.5*\camerasize) coordinate (-north west) -- ++(1.2*\camerasize,0) coordinate (-north east) -- ++(0,1*\camerasize) coordinate (-south east) -- ++(-1.2*\camerasize,0) coordinate (-south west) -- cycle; \end{scope} \egroup }, } \begin{document} \begin{tikzpicture} \path (0,0) pic (c1) {camera} (2,2) pic (c2) {camera={rotate=45,size=5mm,fill=pink,draw=red}}; \fill[blue] (c1-center) circle(2pt) (c2-center) circle(2pt); \end{tikzpicture} \end{document} |