disegno TikZ

  • Creatore
    Topic
  • #52212
    Up
    0
    Down
    ::


    Ciao a tutti, volevo chiedervi se qualcuno sa come disegnare questo:
    `

    ———- ask ———–
    | |——-| |
    | client | | server |
    | |<-------- | | ---------- resp ----------- ` ho provato con questo codice ` \documentclass{article} \usepackage{stmaryrd} \usepackage{tikz} \usepackage{amsmath} %left subscript \usepackage{leftidx} \usetikzlibrary{shapes,arrows} \begin{document} \pagestyle{empty} % Define block styles \tikzstyle{block} = [rectangle, draw, text width=2cm, text centered, rounded corners, minimum height=2em] \begin{figure} \begin{center} \begin{tikzpicture} \node[block] (client) {Client}; \node[block, right of=client,node distance = 4cm] (server) {Server}; \draw[->] (client.east) — node[above]{ask} (server.west);
    \draw[<-] (client.east) -- node[below]{request} (server.west); \end{tikzpicture} \caption{Client/Server Architecture.} \label{Fig.arch} \end{center} \end{figure} ` ma mi sovrappone le frecce. Penso sia una stupidaggine ma non riesco a trovarla nelle varie guide. Grazie Luca

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

        Ciao a tutti, volevo chiedervi se qualcuno sa come disegnare questo:
        `

        ———- ask ———–
        | |——-| |
        | client | | server |
        | |<-------- | | ---------- resp ----------- ` ho provato con questo codice ` \documentclass{article} \usepackage{stmaryrd} \usepackage{tikz} \usepackage{amsmath} %left subscript \usepackage{leftidx} \usetikzlibrary{shapes,arrows} \begin{document} \pagestyle{empty} % Define block styles \tikzstyle{block} = [rectangle, draw, text width=2cm, text centered, rounded corners, minimum height=2em] \begin{figure} \begin{center} \begin{tikzpicture} \node[block] (client) {Client}; \node[block, right of=client,node distance = 4cm] (server) {Server}; \draw[->] (client.east) — node[above]{ask} (server.west);
        \draw[<-] (client.east) -- node[below]{request} (server.west); \end{tikzpicture} \caption{Client/Server Architecture.} \label{Fig.arch} \end{center} \end{figure} ` ma mi sovrappone le frecce. Penso sia una stupidaggine ma non riesco a trovarla nelle varie guide. Grazie Luca

        Puoi usare valori d’angolo della libreria shapes:
        \documentclass{article}
        \usepackage{tikz}

        \usetikzlibrary{shapes,arrows}
        `
        \begin{document}

        \pagestyle{empty}
        \tikzstyle{block} = [rectangle, draw,
        text width=2cm, text centered, rounded corners, minimum height=2em]

        \begin{tikzpicture}
        \node[block] (client) {Client};
        \node[block, right of=client,node distance = 4cm] (server) {Server};

        \draw[->] (client.10) — node[above]{ask} (server.170);
        \draw[<-] (client.350) -- node[below]{request} (server.190); \end{tikzpicture} \end{document}` il numero 0 corrisponde a right e 90 a above. Ciao.

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

          Ciao a tutti, volevo chiedervi se qualcuno sa come disegnare questo:
          `

          ———- ask ———–
          | |——-| |
          | client | | server |
          | |<-------- | | ---------- resp ----------- ` ho provato con questo codice ` \documentclass{article} \usepackage{stmaryrd} \usepackage{tikz} \usepackage{amsmath} %left subscript \usepackage{leftidx} \usetikzlibrary{shapes,arrows} \begin{document} \pagestyle{empty} % Define block styles \tikzstyle{block} = [rectangle, draw, text width=2cm, text centered, rounded corners, minimum height=2em] \begin{figure} \begin{center} \begin{tikzpicture} \node[block] (client) {Client}; \node[block, right of=client,node distance = 4cm] (server) {Server}; \draw[->] (client.east) — node[above]{ask} (server.west);
          \draw[<-] (client.east) -- node[below]{request} (server.west); \end{tikzpicture} \caption{Client/Server Architecture.} \label{Fig.arch} \end{center} \end{figure} ` ma mi sovrappone le frecce. Penso sia una stupidaggine ma non riesco a trovarla nelle varie guide. Grazie Luca

          Puoi usare valori d’angolo della libreria shapes:
          \documentclass{article}
          \usepackage{tikz}

          \usetikzlibrary{shapes,arrows}
          `
          \begin{document}

          \pagestyle{empty}
          \tikzstyle{block} = [rectangle, draw,
          text width=2cm, text centered, rounded corners, minimum height=2em]

          \begin{tikzpicture}
          \node[block] (client) {Client};
          \node[block, right of=client,node distance = 4cm] (server) {Server};

          \draw[->] (client.10) — node[above]{ask} (server.170);
          \draw[<-] (client.350) -- node[below]{request} (server.190); \end{tikzpicture} \end{document}` il numero 0 corrisponde a right e 90 a above. Ciao.

        • #52215
          Up
          0
          Down
          ::


          Grazie! Così l’immagine è perfetta ma non ho capito come hai dato quei valori.
          Grazie ancora
          😀 😀 😀

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

            Grazie! Così l’immagine è perfetta ma non ho capito come hai dato quei valori.
            Grazie ancora
            😀 😀 😀

            Il quadrante, lindir, il quadrante…
            L’oggetto nodo ha una forma, in questo caso un rettangolo, con un centro.
            Se consideri il punto intersezione di un raggio vettore che passa dal centro e diretto secondo l’angolo indicato rispetto all’asse orizzontale e di senso antiorario, con il contorno rettangolare, è possibile individuare i punti d’interesse.

            Per esempio l’angolo 0 corrisponde all’asse x stesso e perciò indica il punto medio del lato destro del rettangolo.

            Un valore di 10 gradi indica quindi un punto sul contorno tra quel punto medio e lo spigolo superiore destro, sempre che il rapporto tra i lati non sia troppo basso, allora incontrerai il lato orizzontale superiore.
            Un punto simmetrico l’ho ottengo con l’angolo complementare 360-10=350 gradi equivalenti a -10 gradi. i punti simmetrici sul lato opposto si ottengono con il complementare dell’angolo piatto 180-10=170 quello sopra all’asse x, con 180+10 = 190 quello sotto all’asse x.

            Un angolo di 90 gradi indicherà l’intersezione con l’asse y positivo, un valore di 270 con l’asse y negativo (e questi angoli notevoli hanno degli equivalenti in right, above, ecc).

            Se quindi vuoi le linee più distanti basta aumentare a 15 gradi per esempio e determinare gli altri tre in virtù della condizione di simmetria.

            Ciao

          • #52217
            Up
            0
            Down
            ::


            Chiarissimo, grazie ancora!

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

        Go to top