prodotto in croce

  • Creatore
    Topic
  • #65382
    claudio
    Partecipante
      Up
      0
      Down
      ::


      Salve dato che ho il sospetto che ci sia, in questo forum,
      qualche estimatore di tikz vorrei sottoporre questo codice

      Dovendo rappresentare il prodotto in croce di due frazioni
      e non sapendo come fare ho pensato di riciclare un po di codice del forum
      che ne pensate?

      grazie Claudio

      `\begin{tikzpicture}[auto, -stealth, thick, scale=0.5]
      %\usetikzlibrary{shapes.geometric}
      % Definizione dei nodi e delle loro scatole

      \node[] at (0,0) (primo) {A};
      \node[] at (0,-1) (frac1) {-};
      \node[] at (2,-1) (frac1) {-};
      \node[] at (4,-1) (prod){AD=BC};
      \node[] at (0,-2) (secondo) {B};
      \node[] at (2,0) (terzo) {C};
      \node [] at (2,-2)(quarto) {D};

      % collegamento dei nodi

      \path (primo) edge (quarto);
      \path (secondo) edge (terzo);
      \end{tikzpicture}`

    Visualizzazione 5 filoni di risposte
    • Autore
      Risposte
      • #65383
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::

          claudio” post=64442Salve dato che ho il sospetto che ci sia, in questo forum,
          qualche estimatore di tikz vorrei sottoporre questo codice

          Dovendo rappresentare il prodotto in croce di due frazioni
          e non sapendo come fare ho pensato di riciclare un po di codice del forum
          che ne pensate?

          grazie Claudio

          `\begin{tikzpicture}[auto, -stealth, thick, scale=0.5]
          %\usetikzlibrary{shapes.geometric}
          % Definizione dei nodi e delle loro scatole

          \node[] at (0,0) (primo) {A};
          \node[] at (0,-1) (frac1) {-};
          \node[] at (2,-1) (frac1) {-};
          \node[] at (4,-1) (prod){AD=BC};
          \node[] at (0,-2) (secondo) {B};
          \node[] at (2,0) (terzo) {C};
          \node [] at (2,-2)(quarto) {D};

          % collegamento dei nodi

          \path (primo) edge (quarto);
          \path (secondo) edge (terzo);
          \end{tikzpicture}`

          Ciao,
          io lascerei a TeX il compito di tracciare le frazioni (in fondo è un compito che svolge egregiamente 🙂 )
          Inserirei quindi le frazioni si come nodi, ma con materiale matematico in \displaystyle
          Nel codice seguente, ho lasciato la regolazione grafica alla definizione di alcune dimensioni (ne bastano tre). In questo modo la grafica è un po’ più flessibile.
          `\documentclass{standalone}
          \usepackage{tikz}

          \newdimen\x % distanza nodo-freccia dir x
          \newdimen\h % altezza freccia-linea base
          \x=2.8mm
          \h=2.4mm

          \newdimen\dist % distanza frazioni
          \dist=12mm

          \begin{document}
          \begin{tikzpicture}[thick]
          \node at (0,0) {$\displaystyle \frac{A}{B}$};
          \node at (\dist,0) {$\displaystyle \frac{C}{D}$};
          \node at (2.5*\dist,0) {$AD=BC$};

          % collegamento termini
          \draw[-stealth] (\x, \h)–(\dist-\x,-\h);
          \draw[-stealth] (\x,-\h)–(\dist-\x, \h);
          \end{tikzpicture}
          \end{document}`

          Un saluto.

        • #65384
          claudio
          Partecipante
            Up
            0
            Down
            ::


            si il risultato è decisamente migliore
            grazie
            l’ho modificato così
            `
            \newcommand{\prodcroce}[4]{
            \newdimen\x % distanza nodo-freccia dir x
            \newdimen\h % altezza freccia-linea base
            \x=2.8mm
            \h=2.4mm

            \newdimen\dist % distanza frazioni
            \dist=12mm
            %\dist=1cm
            \begin{tikzpicture}[thick]
            \node at (0,0) {$\displaystyle \frac{#1}{#2}$};
            \node at (\dist,0) {$\displaystyle \frac{#3}{#4}$};
            \node at (2.5*\dist,0) {$#1\cdot #4=#2\cdot #3$};

            % collegamento termini
            \draw[-stealth] (\x, \h)–(\dist-\x,-\h);
            \draw[-stealth] (\x,-\h)–(\dist-\x, \h);
            \end{tikzpicture}
            }`
            Claudio

          • #65385
            robitex
            Amministratore del forum
              Up
              0
              Down
              ::

              claudio” post=64444si il risultato è decisamente migliore
              grazie
              l’ho modificato così
              `
              \newcommand{\prodcroce}[4]{
              \newdimen\x % distanza nodo-freccia dir x
              \newdimen\h % altezza freccia-linea base
              \x=2.8mm
              \h=2.4mm

              \newdimen\dist % distanza frazioni
              \dist=12mm
              %\dist=1cm
              \begin{tikzpicture}[thick]
              \node at (0,0) {$\displaystyle \frac{#1}{#2}$};
              \node at (\dist,0) {$\displaystyle \frac{#3}{#4}$};
              \node at (2.5*\dist,0) {$#1\cdot #4=#2\cdot #3$};

              % collegamento termini
              \draw[-stealth] (\x, \h)–(\dist-\x,-\h);
              \draw[-stealth] (\x,-\h)–(\dist-\x, \h);
              \end{tikzpicture}
              }`
              Claudio

              Se vuoi usare un comando definisci le dimensioni all’esterno della definizione per non aver problemi.
              Ciao

            • #65386
              claudio
              Partecipante
                Up
                0
                Down
                ::


                che problemi?

              • #65387
                robitex
                Amministratore del forum
                  Up
                  0
                  Down
                  ::

                  claudio” post=64478che problemi?

                  Ogni volta che utilizzi il comando, TeX crea nuove dimensioni fino ad esaurire i registri disponibili che non sono poi molti (256) e molti già impiegati dal nucleo di LaTeX.
                  Puoi portere il numero dei registri a 32000 caricando il pacchetto etex (che fa lavorare il compilatore nella sonfigurazione estesa), ma si tratterebbe comunque di un errore di programmazione.
                  In realtà le dimensioni sono create per facilitare ad un più alto livello il codice tikz.
                  In un comando hanno senso come parametri genrerali e non locali, altrimenti il comando andrebbe ripensato.
                  Ciao.

                • #65388
                  Up
                  0
                  Down
                  ::

                  claudio” post=64444si il risultato è decisamente migliore
                  grazie
                  l’ho modificato così
                  `
                  \newcommand{\prodcroce}[4]{
                  \newdimen\x % distanza nodo-freccia dir x
                  \newdimen\h % altezza freccia-linea base
                  \x=2.8mm
                  \h=2.4mm

                  \newdimen\dist % distanza frazioni
                  \dist=12mm
                  %\dist=1cm
                  \begin{tikzpicture}[thick]
                  \node at (0,0) {$\displaystyle \frac{#1}{#2}$};
                  \node at (\dist,0) {$\displaystyle \frac{#3}{#4}$};
                  \node at (2.5*\dist,0) {$#1\cdot #4=#2\cdot #3$};

                  % collegamento termini
                  \draw[-stealth] (\x, \h)–(\dist-\x,-\h);
                  \draw[-stealth] (\x,-\h)–(\dist-\x, \h);
                  \end{tikzpicture}
                  }`

                  A parte l’errore di dire \newdimen dentro una definizione, cosa che non si deve fare mai, che senso ha usare registri quando le dimensioni sono fisse?

                  Se proprio vuoi parametrizzarle senza dover agire in tanti posti, meglio fare così:
                  `\newcommand{\prodcroce}[4]{%
                  \begin{tikzpicture}[thick]
                  \def\x{2.8mm}
                  \def\h{2.4mm}
                  \def\dist{12mm}%1cm
                  \node at (0,0) {$\displaystyle \frac{#1}{#2}$};
                  \node at (\dist,0) {$\displaystyle \frac{#3}{#4}$};
                  \node at (2.5*\dist,0) {$#1\cdot #4=#2\cdot #3$};
                  % collegamento termini
                  \draw[-stealth] (\x, \h)–(\dist-\x,-\h);
                  \draw[-stealth] (\x,-\h)–(\dist-\x, \h);
                  \end{tikzpicture}%
                  }`
                  Nota i due % in posti strategici: dentro un ambiente tikzpicture gli spazi sono ignorati, fuori no.

                  Sconsiglio sempre di usare per rientrare il codice.

                  Ciao
                  Enrico

              Visualizzazione 5 filoni di risposte
              • Devi essere connesso per rispondere a questo topic.

              Go to top