Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    programma semplice javascript






    Ragazzi devo fare questo programma in javascript dove è l errore?
    creare un codice che, inserito un numero N di punti (da 3 in poi), realizzi un poligono chiuso
    <HTML>
    <BODY>
    <canvas id="lavagna" width="250" height="250"></canvas>
    <script>
    var x1=parseInt(prompt("quanti sono i lati del poligono"));
    var c = document.getElementById('lavagna');
    var ctx=c.getContext("2d");
    ctx.moveTo(x[0],y[0]); // primo vertice
    for (i=1;i<=x1-1; i++)
    {
    var x[i]=parseInt(prompt("metti la prima ascissa"));
    var y[i]=parseInt(prompt("metti la seconda ascissa"));
    ctx.lineTo(x[i],y[i]); // si creano i lati
    }
    ctx.lineTo(x[0],y[0]); // si ritorna al primo vertice
    //ctx.closePath(); // in alternativa, si chiude il percorso
    ctx.stroke(); //disegna
    </script>
    </BODY>
    </HTML>

    non visualizza nulla perché? sto alle prima armi con javascript

  2. #2
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    530
    ti ho fatto alcune correzioni, gli array in javascript li devi definire prima di usarli, poi nel ciclo devi chiedere i punti relativi per ogni posizione e devi indicare la posizione... ho aumentato le dimensioni del rettangolo canvas comunque vedi tu
    va be comunque quasi funziona...
    posto solo il body
    codice:
        <canvas id="lavagna" width="800" height="600"></canvas>
        <script>
        var x1=parseInt(prompt("quanti sono i lati del poligono"));
        var c = document.getElementById('lavagna');
        
        var x = new Array();
        var y = new Array();
        
        var ctx=c.getContext("2d");
        ctx.moveTo(x[0],y[0]); // primo vertice
        for (i=1;i<=x1-1; i++)
        {
        x[i]=parseInt(prompt("imposta la "+i+" ascissa"));
        y[i]=parseInt(prompt("imposta la "+i+" ordinata"));
        ctx.lineTo(x[i],y[i]); // si creano i lati
        }
        ctx.lineTo(x[0],y[0]); // si ritorna al primo vertice
        //ctx.closePath(); // in alternativa, si chiude il percorso
        ctx.stroke(); //disegna
        </script>
    Vic53

  3. #3
    Grazie ma non capisco come chiudere il poligono ho provato con il comando moveTo ma nulla

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2018
    Messaggi
    125
    Conviene fare un ciclo per l'input dei vertici e un altro per il disegno del poligono

    lanvoel

    codice:
    <!doctype html>
    <html>
    <body>
    <canvas id="lavagna" width="400" height="400"></canvas>
        <script>
        var c = document.getElementById('lavagna');
        var ctx=c.getContext("2d");
        var x1=parseInt(prompt("quanti sono i lati del poligono"));
        var x = new Array();
        var y = new Array();
        for (i=1;i<=x1; i++) 
        {
        x[i]=parseInt(prompt("imposta la "+i+" ascissa"));
        y[i]=parseInt(prompt("imposta la "+i+" ordinata"));
        }
    ctx.moveTo(x[1],y[1]); //partenza dal primo punto
        for (i=1;i<=x1; i++) 
        {
        ctx.lineTo(x[i],y[i]); 
        }
        ctx.lineTo(x[1],y[1]); //chiusura al primo punto
        ctx.stroke(); //disegna
        </script>
    </body>
    </html>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.