Como digitar o diagrama mostrado na imagem de uma isoterma?

Como digitar o diagrama mostrado na imagem de uma isoterma?

Diagrama PV de uma isoterma com alguns segmentos de adiabats

Como posso recriar esse diagrama? com os segmentos de reta e não necessariamente com os pontos (V_2, P_5, T_5), ..., etc.

Responder1

Como alguns comentários afirmaram, gostaríamos de ver suas próprias tentativas aqui, primeiro. No entanto, como este diagrama envolve alguns aspectos interessantes, esboçarei um caminho até o seu diagrama final. Aliás, esse é mais ou menos o procedimento para fazer desenhos.

Onde encontrar mais

Sugiro folhear ou ler as seções do tutorial no manual do Tikz, comoHTMLdepdf. Procure também todos os comandos Tikz relevantes que estou usando.

Ideia básica

Vamos dar uma olhada na ideia básica primeiro:

  • desenhe os eixos
  • desenhe a curva inferior
  • indique os pontos necessários para seus pontos
  • conectar pontos acima da curva inferior

Machados: nada de estranho para ela... apenas desenhe-os.

    % ~~~ axes ~~~
    \draw[->] (0,0) -- (5,0);
    \draw[->] (0,0) -- (0,5);

Agora, a curva inferior parece complicada, embora não seja quando você entendeu o conceito de caminho do Tikz. Basicamente você desenha uma linha entre dois pontos \draw (1,3) -- (4,1);. Para torná-lo curvo, basta substituir --por to[out=,in=]e especificar os ângulos de saída e entrada. O caminho começa \drawe termina com ;. Então, vamos fazer mais algumas ações nesse caminho antes que ele termine. Coloque um nodeapós a última coordenada desenhada para colocar o rótulo T1. Insira mais dois nodes entre o ponto inicial e final, onde usaremos apenas suas coordenadas (A) e (B) e ajuste sua posição neste caminho usando [pos=]. Por favor, observe o que caiu \dentro do caminho.

    % ~~~ lower curve: a path with many actions ~~~~~   
    \draw (1,3) to[out=-60,in=170]  % start point, towards ...
    node[pos=.8] (A) {A}            % basically, store coordinates
    node[pos=.6] (B) {B}            % (A) and (B)
    (4,1) node[anchor=west]{$T_1$}  % end point + some node as label    
    ;                               % end of this path

Precisamos de um outro ponto (C) acima de (B), então vamos colocar outro \node, usando um[yshift=]

    % ~~~ put a node//coordinate above (B) ~~~
    \node (C) at ([yshift=6mm]B) {C};

Finalmente, vamos conectar (A), (C) e (B), novamente com alguma linha curva:

    % ~~~ connect A, C and B ~~~~~~~~~
    \draw (A) to[out=140,in=-70] (C) -- (B);

ideia básica

Refinamentos

Estas são as alterações e complementos:

  • defina alguns estilos: crdpara renderizar os nós fictícios com círculos, lnpara a linha
  • lembre-se coordinate (X) ao longo do eixo x para mais tarde
  • remova o texto dos nós A, B e C E use o crdestilo
  • desenhe com seta e rótulo para o(label)
  • calcule a coordenada (V4) em (B) reutilizando (X), coloque um \node, \drawuma marca

Para a shifted arrowsua linha existem várias maneiras de fazer isso. Usei a variante preguiçosa e aqui estão mais opções:

  • omitindo a flecha
  • usando a biblioteca de decorações
  • coloque um ponto intermediário entre A e B (e ajuste os ângulos, se necessário)
  • etc.

refinamentos

Código completo

Este código criará duas páginas (uma para cada ambiente tikzpicture) de desenhos com geometria de página ajustada.

\documentclass[10pt,border=3mm,tikz]{standalone}

\begin{document}
 % ~~~ (I) basic ideas ~~~~~~~~~~~~~~~
 \begin{tikzpicture}
    % ~~~ axes ~~~
    \draw[->] (0,0) -- (5,0);
    \draw[->] (0,0) -- (0,5);
    
    % ~~~ lower curve: a path with many actions ~~~~~   
    \draw (1,3) to[out=-60,in=170]  % start point, towards ...
    node[pos=.8] (A) {A}            % basically, store coordinates
    node[pos=.6] (B) {B}            % (A) and (B)
    (4,1) node[anchor=west]{$T_1$}  % end point + some node as label    
    ;                               % end of this path
    
    % ~~~ put a node//coordinate above (B) ~~~
    \node (C) at ([yshift=6mm]B) {C};
    
    % ~~~ connect A, C and B ~~~~~~~~~
    \draw (A) to[out=140,in=-70] (C) -- (B);
    
 \end{tikzpicture}
 
 
 
 % ~~~ (II) fine print ~~~~~~~~~~~~~~~
 \begin{tikzpicture}[   % some self-defined styles
    crd/.style={minimum size=1mm,       % puts the dots
                inner sep=0pt,circle,draw,fill},
    ln/.style={blue, line width=1.5pt},
 ]
    % ~~~ axes ~~~
    \draw[->] (0,0) -- (5,0) coordinate (X);
    \draw[->] (0,0) -- (0,5);
    
    % ~~~ lower curve: a path with many actions ~~~~~   
    \draw (1,3) to[out=-60,in=170]  % start point, towards ...
    node[pos=.8,crd] (A) {}         % basically, store coordinates
    node[pos=.6,crd] (B) {}         % (A) and (B)
    (4,1) node[anchor=west]{$T_1$}  % end point + some node as label    
    ;                               % end of this path
    
    % ~~~ put a node//coordinate above (B) ~~~
    \node[crd] (C) at ([yshift=6mm]B) {};
    
    % ~~~ connect A, C and B ~~~~~~~~~
    \draw[ln,->] (A) to[out=140,in=-70] (C);
    \draw[ln]    (C) -- (B);
    
    % ~~~ put some label ~~~~~~~~~~~
    \draw[<-] (C) -- +(45:15mm) node[anchor=west] {$(V_4, P_4, T_4)$};
    
    % ~~~ perpendicular below points ~~~~~~~
    \coordinate           (V4) at (B |- X); % projection onto x-axis
    \node[yshift=-3mm] at (V4) {$V_4$};     % the label
    \draw (V4) -- +(0,.2);                  % the tick
    
 \end{tikzpicture}
\end{document}

informação relacionada