Problema con grafico superficie

  • Creatore
    Topic
  • #91596
    GuITstaff
    Amministratore del forum
      Up
      0
      Down
      ::


      Salve,

      devo rappresentare il grafico come nell’immagine allegata, ora io ho utilizzato la seguente sintassi:

      \begin{figure}[!htbp]
      \begin{center}
      \begin{tikzpicture}
      \foreach \t in {0,0.1,…,1} {
      \filldraw [fill=white] plot [domain=0:2*pi]
      ({sqrt(1-\t^2)*sin(\x r)}, \t, {sqrt(1-\t^2)*cos(\x r)});
      }
      \foreach \t in {0} {
      \filldraw [fill=gray!20] plot [domain=0:2*pi]
      ( {sin(\x r)}, \t, {cos(\x r)});
      }
      \draw[->] (0,0,0) — (4,0,0);
      \draw (4,0,0) node[below] {$y$};
      \draw [->] (0,0,0) — (0,4,0);
      \draw (0,4,0) node

      {$z$};
      \draw [->] (0,0,0) — (0,0,4);
      \draw (0,0,4) node[below right] {$x$};
      \draw (0,0,0) node

      {$\overline{O}$};
      \draw [->] (0.8,0,3) — (-0.5,0,0.2);
      \draw (2.5,0,4.3) node [above] {$\Dom f^+=\overline{B(0,1)}$};
      \draw (1,0,1) node

      {$x^2+y^2=1$};
      \draw [fill=black] (0,1,0) circle (1.4pt)
      node [above right] {$N=(0,0,1)$};
      \end{tikzpicture}
      \end{center}
      \caption{Grafico della funzione $z=\sqrt{1-(x^2+y^2)}$}
      \end{figure}

      per rappresentare un altro grafico in cui la superficie era una semisfera, non so quale codice utilizzare mediante una rappresentazione parametrica per disegnare il grafico rappresentato nell’immagine.

      Qualcuno ha qualche suggerimento da darmi?

      Ho consultato la guida in lingua francese di tikz, ma lì definisce solo grafici di figure note.

      [attachment=885]Immagine.png[/attachment]

      Attachments:
      You must be logged in to view attached files.
    Visualizzazione 9 filoni di risposte
    • Autore
      Risposte
      • #91597
        Liverpool
        Partecipante
          Up
          0
          Down
          ::


          Non ho capito che tipo di rappresentazione ti serve. Vuoi ottenere lo stesso disegno dell’immagine?
          Se è così, è più semplice realizzare direttamente il disegno nel piano.

          Ciao

        • #91598
          GuITstaff
          Amministratore del forum
            Up
            0
            Down
            ::


            Sì, voglio esattamente lo stesso disegno dell’immagine, ma non so come rappresentarlo.

          • #91599
            Liverpool
            Partecipante
              Up
              0
              Down
              ::

              rainbow” post=91160Sì, voglio esattamente lo stesso disegno dell’immagine, ma non so come rappresentarlo.

              `\documentclass

              {standalone}
              \usepackage{tikz}

              \begin{document}
              \begin{tikzpicture}
              \draw [-latex] (0,0) — (-2.4,-2.3) node [below right] {$x$};
              \draw [-latex] (0,0) — (4.2,-1.3) node [below] {$y$};
              \draw [-latex] (0,0) — (0,2.2) node

              {$z$};
              \draw (0,0.4) .. controls (1.4,0.6) and (0.1,-1.7) .. (2,-2.45)
              to [bend left=18, relative] (4.8,0.5) node [above right] {$z=f(x,y)$}
              .. controls (3.5,0.7) and (3.4,1.8) .. (2.6,2.15)
              to [bend right=26, relative] cycle;
              \draw [dash dot] (2.4,1.4) — (2.4,-2.8);
              \fill (2.4,1.4) circle [radius=1pt]
              (2.4,-2.8) circle [radius=1pt] node [below right] {$(x,y)$};
              \draw (1.45,2.1) — (2.15,0) — (3.8,0.7) — (3,2.7) — cycle;
              \end{tikzpicture}
              \end{document}`

              [attachment=887]prova1_2014-01-17.png[/attachment]

              Attachments:
              You must be logged in to view attached files.
            • #91600
              GuITstaff
              Amministratore del forum
                Up
                0
                Down
                ::


                Grazie mille ho risolto, ma se dovessi fare questo altro grafico in figura, devo seguire le stesse istruzioni?

                [attachment=888]Immagine_2014-01-17.png[/attachment]

                Attachments:
                You must be logged in to view attached files.
              • #91601
                Liverpool
                Partecipante
                  Up
                  0
                  Down
                  ::

                  rainbow” post=91165Grazie mille ho risolto, ma se dovessi fare questo altro grafico in figura, devo seguire le stesse istruzioni?

                  Se non conosci l’espressione analitica della funzione ed è troppo complicato risalirvi, la strada di “ricalcarla” secondo me diventa la più semplice, ma non è facile costruire le curve di Bézier.
                  Se invece conosci l’espressione analitica oppure decidi di rinunciare all’esatta corrispondenza del disegno e ti scegli un’espressione nota con le stesse proprietà del disegno, il pacchetto [tt]pgfplots[/tt] permette di disegnare in 3d a partire da questa. Nel caso specifico, una funzione tipo la [tt]peaks[/tt] di Matlab sarebbe molto indicata.

                  Ciao

                • #91602
                  GuITstaff
                  Amministratore del forum
                    Up
                    0
                    Down
                    ::


                    Grazie ci provo. Un’ultima cosa… ho da disegnare quest’altro grafico in figura, ho provato utilizzando il seguente codice:

                    \begin{figure}[!htbp]
                    \begin{center}
                    \begin{tikzpicture}
                    \draw [->] (0,0) — (-2.4,-2.3) node [below right] {$y$};
                    \draw [->] (0,0) — (4.2,-1.3) node [below] {$x$};
                    \draw [->] (0,0) — (0,2.2) node

                    {$z$};
                    \draw [help lines] (-2,0) (2,0);
                    \draw (-2,-1.4) parabola bend (0,0)
                    (0.5,-1);
                    \end{tikzpicture}
                    \end{center}
                    \caption{}
                    \end{figure}

                    Il problema è che non riesco a beccare i punti giusti per disegnarla, pensavo di disegnare due parabole, una sopra l’altra e poi il rettangolo, oppure esiste un altro sistema?

                    [attachment=889]Immagine2.png[/attachment]

                    Attachments:
                    You must be logged in to view attached files.
                  • #91603
                    Liverpool
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      Nel disegno non ci sono né rettangoli né parabole, perché la proiezione è obliqua. Se vuoi ricavare le coordinate dei punti a partire dal disegno, inseriscilo nel tuo ambiente di TikZ e sovrapponigli una griglia con passo noto che ti aiuti. Ad esempio, se ti salvi l’immagine con il nome [tt]Immagine1[/tt] nella cartella dove hai messo il sorgente, questo codice è un punto di partenza:
                      `\begin{tikzpicture}
                      \node [inner sep=0pt, outer sep=0pt] at (0.52,-1.3) {\includegraphics{Immagine1}};
                      \draw [blue, thin, step=2mm] (-3,-3) grid (5,2);
                      \end{tikzpicture}`
                      Ho già piazzato io l’origine all’intersezione degli assi. Il passo successivo è determinare le coordinate dei punti e imporvi il passaggio delle curve. Se hai difficoltà con le curve di Bézier, individua più punti delle curve che vuoi tracciare e usa l’istruzione [tt]plot[/tt] abbinata alla libreria [tt]hobby[/tt] (guarda qui a pag. 19-20) .

                      Ciao

                      P.S.: le coordinate della parabola del tuo esempio non hanno significato geometrico, per questo la parabola viene “storta”.

                    • #91604
                      GuITstaff
                      Amministratore del forum
                        Up
                        0
                        Down
                        ::


                        Ciao!
                        Ho provato utilizzando la libreria hobby, ma latex mi dà errore: File ‘hobby.sty’ not found.
                        Ho controllato i pacchetti installati e risulta installato il pacchetto hobby. Ho effettuato anche un aggiornamento dei pacchetti, ma continua a darmi errore. Come posso ovviare a questo inconveniente?
                        Grazie.

                      • #91605
                        Up
                        0
                        Down
                        ::

                        rainbow” post=91192Ciao!
                        Ho provato utilizzando la libreria hobby, ma latex mi dà errore: File ‘hobby.sty’ not found.
                        Ho controllato i pacchetti installati e risulta installato il pacchetto hobby. Ho effettuato anche un aggiornamento dei pacchetti, ma continua a darmi errore. Come posso ovviare a questo inconveniente?
                        Grazie.

                        Se hai MikTeX, probabilmente hai dimenticato di fare il refresh del database dei pacchetti. Vedi qui.

                        Un paio di annotazioni: in merito alle guide, in francese ce ne sono alcune, ma ti segnalo che da qualche mese è disponibile L’arte di disegnare con LaTeX che secondo me è più completa come guida iniziale.

                        Detto questo, per la tua particolare esigenza non c’è nessuna guida che ti spiega come fare. Liverpool ti ha consigliato la strada migliore, ma prima devi fare un po’ di pratica nel gestire i [tt]path[/tt] altrimenti diventa difficile. Chiaramente, se tu avessi la funzione potresti far lavorare pgfplots.

                        Ciao
                        Claudio

                      • #91606
                        GuITstaff
                        Amministratore del forum
                          Up
                          0
                          Down
                          ::

                          Liverpool” post=91178Nel disegno non ci sono né rettangoli né parabole, perché la proiezione è obliqua. Se vuoi ricavare le coordinate dei punti a partire dal disegno, inseriscilo nel tuo ambiente di TikZ e sovrapponigli una griglia con passo noto che ti aiuti. Ad esempio, se ti salvi l’immagine con il nome [tt]Immagine1[/tt] nella cartella dove hai messo il sorgente, questo codice è un punto di partenza:
                          `\begin{tikzpicture}
                          \node [inner sep=0pt, outer sep=0pt] at (0.52,-1.3) {\includegraphics{Immagine1}};
                          \draw [blue, thin, step=2mm] (-3,-3) grid (5,2);
                          \end{tikzpicture}`
                          Ho già piazzato io l’origine all’intersezione degli assi. Il passo successivo è determinare le coordinate dei punti e imporvi il passaggio delle curve. Se hai difficoltà con le curve di Bézier, individua più punti delle curve che vuoi tracciare e usa l’istruzione [tt]plot[/tt] abbinata alla libreria [tt]hobby[/tt] (guarda qui a pag. 19-20) .

                          Ciao

                          P.S.: le coordinate della parabola del tuo esempio non hanno significato geometrico, per questo la parabola viene “storta”.

                          Grazie, alla fine ho risolto partendo dal codice dato da Liverpool, ricalcando l’immagine con i punti, senza la libreria hobby.

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

                      Go to top