Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    268

    [VRML] Cambiare viewpoint da pagina HTML

    Credo che la sezione più adatta sia javascript, comunque:
    ho una pagina HTML che contiene un file VRML, vorrei inserire nella mia pagina un bottone che, quando premuto, mi cambia il viewpoint del mio VRML.
    Nel file VRML naturalmente ho già indicato tutti i viewpoint.

    [uso Flux Player, se clicco sull'oggetto VRML e poi premo la barra spaziatrice della tastiera, le viewpoint cambiano, quindi credo sia possibile in qualche modo dire al mio bottone in HTML "invia uno spazio all'oggetto VRML"]

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    268
    Probabilmente è corretto passare il tutto nella sezione javascript. Io comunque ho risolto così:

    file cubo.wrl (disegno di un cubo rosa con posizione iniziale "pos1")
    #VRML V2.0 utf8
    DirectionalLight {direction 1 -1 0}

    DEF prova Viewpoint
    {
    position 0 0 4
    orientation 0 1 0 0.2
    description "pos1"
    }



    Shape
    {
    appearance Appearance
    {
    material Material {emissiveColor .5 .1 .1}
    }
    geometry Box
    {size 1 1 1}
    }
    file html che lo contiene (DASHBOARD="0" sta per: non visualizzare console player)
    <html>
    <head>
    <title>MARTEDI</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script language="JavaScript">

    var i=1; //indice dei punti di vista
    var posizioni = new Array("0 0 4","0 0 5","0 0 6"); //elenco delle coordinate dei punti di vista
    var direzioni = new Array("0 1 0 0","0 1 0 3.14","0 1 0 0"); //elenco delle direzioni dei punti di vista
    var descrizioni = new Array("pos1","pos2","pos3") //descrizione dei punti di vista

    function CambiaVista()
    {
    if (i==3) //quando ho eseguito i 3 punti di vista torno al primo
    {i=0}

    //Verifico la corretta esecuzione del player
    var browser = document.OGGETTO.getBrowser();

    if (browser == null)
    {
    alert("oggetto 3D assente!");
    return;
    }

    var context = browser.getExecutionContext();

    if (context == null)
    {
    alert("oggetto 3D non eseguito");
    return;
    }

    theText = context.getNode("prova"); //prova è il nome del mio nodo

    //Verifico che il nodo non sia nullo
    if (theText == null)
    {
    alert("Viewpoint non definito");
    return;
    }

    var Assi = posizioni[i].split(" "); //scompongo la posizione
    var Angolo = direzioni[i].split(" "); // scompongo la direzione

    //Assegno i nuovi valori
    theText.position.x = Assi[0];
    theText.position.y = Assi[1];
    theText.position.z = Assi[2];
    theText.orientation.x = Angolo[0];
    theText.orientation.y = Angolo[1];
    theText.orientation.z = Angolo[2];
    theText.orientation.angle = Angolo[3];
    theText.description = descrizioni[i];

    i = i+1; //incremento l'indice
    }

    </script>
    </head>
    <body>
    <input value="Cambia Vista" type="button" onClick="CambiaVista();">
    <center>
    <embed WIDTH="640" HEIGHT="480" NAME="OGGETTO" SRC="cubo.wrl" TYPE="model/x3d" DASHBOARD="0" BGCOLOR="0xFFFFFF">
    </center>
    </body>
    </html>
    Per aggiungere altri punti di vista inserisco nuovi elementi all'interno degl'Array e incremento il valore di confronto con i

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    268
    Dimenticavo!!!! In questo caso i viewpoint non sono inseriti nel file wrl ma nel file 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 © 2026 vBulletin Solutions, Inc. All rights reserved.