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

    Figure geometriche in 3D

    Ciao a tutti.
    dovrei trovare il metodo x costruire graficamente parallelepipedi e cubi in 3D digitando la lunghezza dei lati x,y,z in pixel. sapete se esiste qualcosa di simile?

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    in solo javascript è escluso, ma forse puoi integrando con SVG
    Qui ci sono degli esempi d'uso: http://www.zvon.org/HowTo/Output/index.html

    oppure qui
    http://xml.html.it/guide/lezione/1775/scripting/
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    copia e incolla il codice e provalo su firefox 1.5 (su explorer non funziona)
    salva il codice con estensione .svg

    codice:
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
    "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
    <head>
        <style type="text/css">
            /* <![CDATA[ */
                body {
                    font        : 12px 'Courier New';            
                }
                
                input {
                    width       : 40px;
                }
                
                #createCube {
                    width       : 100px;            
                }
    
            /* ]]> */
        </style>
            
        <script type="text/javascript">
            // <![CDATA[
    
                
              function createCube3D() {
              
                var rad2 = Math.sqrt(2);
                var cx = document.getElementById('coordx').value;
                var cy = document.getElementById('coordy').value;
                var cz = document.getElementById('coordz').value;
                
                //alert(cx+'-'+cy+'-'+cz+'-'+rad2);
                //alert(parseInt((120 - (cz * rad2)), 10));
                //alert(parseInt(10 + (cz * rad2), 10));
                
                // Base superiore
                document.getElementById('bs1').setAttribute('x1', parseInt((120 - (cz * rad2)), 10) );
                document.getElementById('bs1').setAttribute('y1', parseInt(10 + (cz * rad2), 10));
                document.getElementById('bs1').setAttribute('x2', 120);
                document.getElementById('bs1').setAttribute('y2', 10);
                
                document.getElementById('bs2').setAttribute('x1', 120);
                document.getElementById('bs2').setAttribute('y1', 10);
                document.getElementById('bs2').setAttribute('x2', parseInt((120 + (cx * rad2)), 10) );
                document.getElementById('bs2').setAttribute('y2', parseInt(10 + (cx * rad2), 10));
                
                document.getElementById('bs3').setAttribute('x1', parseInt((120 + (cx * rad2)), 10) );
                document.getElementById('bs3').setAttribute('y1', parseInt(10 + (cx * rad2), 10));
                document.getElementById('bs3').setAttribute('x2', parseInt((120 + (cx * rad2)), 10) - parseInt((cz * rad2), 10) );
                document.getElementById('bs3').setAttribute('y2', parseInt(10 + (cx * rad2), 10) + parseInt((cz * rad2), 10));
                
                document.getElementById('bs4').setAttribute('x1', parseInt((120 + (cx * rad2)), 10) - parseInt((cz * rad2), 10) );
                document.getElementById('bs4').setAttribute('y1', parseInt(10 + (cx * rad2), 10) + parseInt((cz * rad2), 10));
                document.getElementById('bs4').setAttribute('x2', parseInt((120 - (cz * rad2)), 10));
                document.getElementById('bs4').setAttribute('y2', parseInt(10 + (cz * rad2), 10));
                
                // altezze
                
                document.getElementById('ht1').setAttribute('x1', parseInt((120 - (cz * rad2)), 10) );
                document.getElementById('ht1').setAttribute('y1', parseInt(10 + (cz * rad2), 10));
                document.getElementById('ht1').setAttribute('x2', parseInt((120 - (cz * rad2)), 10) );
                document.getElementById('ht1').setAttribute('y2', parseInt(10 + (cz * rad2), 10) + parseInt(cy, 10));
                
                document.getElementById('ht2').setAttribute('x1', 120);
                document.getElementById('ht2').setAttribute('y1', 10);
                document.getElementById('ht2').setAttribute('x2', 120);
                document.getElementById('ht2').setAttribute('y2', 10 + parseInt(cy, 10));
                    
                document.getElementById('ht3').setAttribute('x1', parseInt((120 + (cx * rad2)), 10) );
                document.getElementById('ht3').setAttribute('y1', parseInt(10 + (cx * rad2), 10));
                document.getElementById('ht3').setAttribute('x2', parseInt((120 + (cx * rad2)), 10) );
                document.getElementById('ht3').setAttribute('y2', parseInt(10 + (cx * rad2), 10) + parseInt(cy, 10));
                
                document.getElementById('ht4').setAttribute('x1', parseInt((120 + (cx * rad2)), 10) - parseInt((cz * rad2), 10) );
                document.getElementById('ht4').setAttribute('y1', parseInt(10 + (cx * rad2), 10) + parseInt((cz * rad2), 10));
                document.getElementById('ht4').setAttribute('x2', parseInt((120 + (cx * rad2)), 10) - parseInt((cz * rad2), 10) );
                document.getElementById('ht4').setAttribute('y2', parseInt(10 + (cx * rad2), 10) + parseInt((cz * rad2), 10) + parseInt(cy, 10));
                
                // Base inferiore
                document.getElementById('bi1').setAttribute('x1', parseInt((120 - (cz * rad2)), 10) );
                document.getElementById('bi1').setAttribute('y1', parseInt(10 + (cz * rad2), 10) + parseInt(cy, 10));
                document.getElementById('bi1').setAttribute('x2', 120);
                document.getElementById('bi1').setAttribute('y2', 10 + parseInt(cy, 10));
                
                document.getElementById('bi2').setAttribute('x1', 120);
                document.getElementById('bi2').setAttribute('y1', 10 + parseInt(cy, 10));
                document.getElementById('bi2').setAttribute('x2', parseInt((120 + (cx * rad2)), 10) );
                document.getElementById('bi2').setAttribute('y2', parseInt(10 + (cx * rad2), 10) + parseInt(cy, 10));
                
                document.getElementById('bi3').setAttribute('x1', parseInt((120 + (cx * rad2)), 10) );
                document.getElementById('bi3').setAttribute('y1', parseInt(10 + (cx * rad2), 10) + parseInt(cy, 10));
                document.getElementById('bi3').setAttribute('x2', parseInt((120 + (cx * rad2)), 10) - parseInt((cz * rad2), 10) );
                document.getElementById('bi3').setAttribute('y2', parseInt(10 + (cx * rad2), 10) + parseInt((cz * rad2), 10) + parseInt(cy, 10));
                
                document.getElementById('bi4').setAttribute('x1', parseInt((120 + (cx * rad2)), 10) - parseInt((cz * rad2), 10));
                document.getElementById('bi4').setAttribute('y1', parseInt(10 + (cx * rad2), 10) + parseInt((cz * rad2), 10) + parseInt(cy, 10));
                document.getElementById('bi4').setAttribute('x2', parseInt((120 - (cz * rad2)), 10));
                document.getElementById('bi4').setAttribute('y2', parseInt(10 + (cz * rad2), 10) + parseInt(cy, 10));
                
              }
                
    
            // ]]>
    
          </script>
    </head>
    <body>
        <form>
        <label for="coordx">Coord X</label> <input type="text" id="coordx" value="10" />
    
        <label for="coordx">Coord Y</label> <input type="text" id="coordy" value="10" />
    
        <label for="coordx">Coord Z</label> <input type="text" id="coordz" value="10" />
    
    
        <input type="button" id="createCube" value="createCube" onclick="createCube3D()" />
        </form>
    
        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300" height="300">
          <g id="basesup">
            <line id="bs1" x1="0" y1="0" x2="0" y2="0" style="stroke:rgb(99,120,150);stroke-width:1" />
            <line id="bs2" x1="0" y1="0" x2="0" y2="0" style="stroke:rgb(99,120,150);stroke-width:1" />
            <line id="bs3" x1="0" y1="0" x2="0" y2="0" style="stroke:rgb(99,120,150);stroke-width:1" />
            <line id="bs4" x1="0" y1="0" x2="0" y2="0" style="stroke:rgb(99,120,150);stroke-width:1" />
    
          </g>
          
          <g id="altezze">
            <line id="ht1" x1="0" y1="0" x2="0" y2="0" style="stroke:rgb(99,120,150);stroke-width:1" />
            <line id="ht2" x1="0" y1="0" x2="0" y2="0" style="stroke:rgb(99,120,150);stroke-width:1" />
            <line id="ht3" x1="0" y1="0" x2="0" y2="0" style="stroke:rgb(99,120,150);stroke-width:1" />
            <line id="ht4" x1="0" y1="0" x2="0" y2="0" style="stroke:rgb(99,120,150);stroke-width:1" />
          </g>
          
          <g id="baseinf">
            <line id="bi1" x1="0" y1="0" x2="0" y2="0" style="stroke:rgb(99,120,150);stroke-width:1" />
    
            <line id="bi2" x1="0" y1="0" x2="0" y2="0" style="stroke:rgb(99,120,150);stroke-width:1" />
            <line id="bi3" x1="0" y1="0" x2="0" y2="0" style="stroke:rgb(99,120,150);stroke-width:1" />
            <line id="bi4" x1="0" y1="0" x2="0" y2="0" style="stroke:rgb(99,120,150);stroke-width:1" />
          </g>
        </svg>
    		
        </body>
    </html>

    Ciao
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  4. #4
    GRAZIE MA....CHE STRANO, NON SI MUOVE NULLA. E NON DA NEMMENO ERRORI DI JS

  5. #5
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    non deve muoversi... il codice disegna solo il parallelepipedo

    e, ripeto, io l'ho provato su Firefox 1.5 salvato con estensione svg
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  6. #6
    NO NO, INFATTI PER "NON SI MUOVE NULLA" intendevo non si vede nulla.

  7. #7
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    posta uno screenshot della finestra se puoi... e la versione di Firefox che stai usando... io lo vedo bene.
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  8. #8
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    evt fai un "quote" del mio post e copia il codice da lì...

    io lo vedo così
    Immagini allegate Immagini allegate
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

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 © 2025 vBulletin Solutions, Inc. All rights reserved.