Metapost: punto su segmento

  • Creatore
    Topic
  • #47830
    robitex
    Amministratore del forum
      Up
      0
      Down
      ::


      Ciao,
      come è noto se a e b sono due punti quello corrispondente al punto di mezzo del segmento può essere espresso come:`pair a,b,m;
      a := (80,120);
      b :=(280,240);
      m := 0.5[a,b]; % numero per [ pair, pair ]
      `

      A questo punto, se si vuole disegnare un segmento che sborda diciamo di un 20% oltre i punti di definizione per simulare il disegno di una retta che passa per due punti, immaginavo si potesse scrivere:`beginfig(1);
      pair a,b;
      a := (80,120);
      b := (280,240);

      draw -0.2[a,b]–1.2[a,b];
      drawdot a withpen pencircle scaled 3;
      drawdot b withpen pencircle scaled 3;
      endfig;
      end`

      Se provate (ho completato il codice delle istruzioni complete per il sorgente compilabile), mentre il secondo punto sborda correttamente oltre il punto b, il primo non corrisponde a quello previsto ma è di poco diverso.
      Sembra che i numeri negativi non siano supportati correttamente, infatti se inverto tutto torna perfettamente a posto:`draw 1.2[b,a]–1.2[a,b];`.
      La sintassi di Metapost prevista è questa:
      [,]

      quindi dovrebbe essere supportato l’uso di numeri negativi.
      Cosa ne pensate?

    Visualizzazione 3 filoni di risposte
    • Autore
      Risposte
      • #47831
        Up
        0
        Down
        ::

        Ciao,
        come è noto se a e b sono due punti quello corrispondente al punto di mezzo del segmento può essere espresso come:`pair a,b,m;
        a := (80,120);
        b :=(280,240);
        m := 0.5[a,b]; % numero per [ pair, pair ]
        `

        A questo punto, se si vuole disegnare un segmento che sborda diciamo di un 20% oltre i punti di definizione per simulare il disegno di una retta che passa per due punti, immaginavo si potesse scrivere:`beginfig(1);
        pair a,b;
        a := (80,120);
        b := (280,240);

        draw -0.2[a,b]–1.2[a,b];
        drawdot a withpen pencircle scaled 3;
        drawdot b withpen pencircle scaled 3;
        endfig;
        end`

        Se provate (ho completato il codice delle istruzioni complete per il sorgente compilabile), mentre il secondo punto sborda correttamente oltre il punto b, il primo non corrisponde a quello previsto ma è di poco diverso.
        Sembra che i numeri negativi non siano supportati correttamente, infatti se inverto tutto torna perfettamente a posto:`draw 1.2[b,a]–1.2[a,b];`.
        La sintassi di Metapost prevista è questa:
        [,]

        quindi dovrebbe essere supportato l’uso di numeri negativi.
        Cosa ne pensate?

        Sbagli le precedenze: -0.2 non è un ; quindi quello che ottieni è equivalente a -(0.2[a,b]) che è molto diverso da (-0.2)[a,b]

        Ciao
        Enrico

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


          Grazie!
          Allora il miglior modo è aggiungere parentesi tonde al numero?
          `draw (-0.2)[a,b]–1.2[a,b];`

          Ciao.

        • #47833
          Up
          0
          Down
          ::

          Grazie!
          Allora il miglior modo è aggiungere parentesi tonde al numero?
          `draw (-0.2)[a,b]–1.2[a,b];`

          Pagina 19 del manuale di Metapost.

          For example, -1[a,b] and (-1)[a,b] are very different: the former is -b since it is equivalent to -(1[a,b]); the latter is a-(b-a) or 2a-b.

          Ciao
          Enrico

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

            Grazie!
            Allora il miglior modo è aggiungere parentesi tonde al numero?
            `draw (-0.2)[a,b]–1.2[a,b];`

            Pagina 19 del manuale di Metapost.

            For example, -1[a,b] and (-1)[a,b] are very different: the former is -b since it is equivalent to -(1[a,b]); the latter is a-(b-a) or 2a-b.

            Ciao
            Enrico

            Eppure l’avevo sotto gli occhi!!
            Sintomi di vecchiaia o caldo afoso?
            Ma … 😯

            Grazie di nuovo.
            Ciao

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

        Go to top