2012-03-21 1 views
35

Ho letto del tag canvas in HTML5 e ho visto sempre getContext('2d').
Il parametro è '2d', quindi non c'è un'altra possibilità come '3d'?
E come si può usare? Ho provato il 3D prima, ma non ho capito veramente (a causa di un tutorial non esplicativo). Qualche tutorial?Puoi usare canvas.getContext ('3d')? Se sì, come?

+29

"JavaScript è più semplice di un vero linguaggio di programmazione". Come osi! – j08691

+25

A lungo termine, JavaScript è più difficile proprio a causa di ciò che manca. Come dicono gli anziani, "Dai a JavaScript un uomo e lui cercherà un giorno, insegnerà a un uomo a JavaScript e vorrebbe avere un sistema di tipi". –

+2

'getContext ('4d')' presto disponibile –

risposta

37

C'è un contesto 3D per tela, ma non è chiamato "3d", ma WebGL ("webgl").

+7

Oops, non ho visto che Peter avesse la stessa risposta pubblicata qualche secondo prima. Per favore, accetta la sua risposta se sei soddisfatto di entrambi. – denisw

11

Il contesto 3D non è ancora stato implementato nella maggior parte dei browser. Credo che ci sia una versione sperimentale di Opera che ne fornisce una e un addon per FF che faccia lo stesso, ma nessuno di questi è pronto per l'uso. Dovrai attendere un'ampia adozione e implementazione.

e penso JavaScript è più facile poi un vero e proprio linguaggio di programmazione

Javascript è un 'vero' linguaggio di programmazione. Essere un linguaggio di alto livello non lo rende un giocattolo o un falso (e questo viene da un addetto ai sistemi che, secondo la tua opinione, scrive codice in "veri" linguaggi di programmazione ogni giorno).

+4

Mentre è davvero reale, vorrei che non lo fosse. –

+1

@Zekian: Se fossi costretto a usarlo sono sicuro che mi sentirei lo stesso –

+1

Penso che WebGL sia supportato nella maggior parte dei browser (incluso il cellulare) tranne IE. Leggi qui https://www.ichemlabs.com/1375. – Lucky

18

È possibile ottenere uno WebGL context, che consente di accedere a tale API, consentendo il rendering 3D di tipo OpenGL ES 2.0.

26

WebGL deve essere available in the most up-to-date versions of all browsers. Usa:

<!DOCTYPE html> 
<html> 
<body> 
<canvas id='c'></canvas> 
    <script> 
    var c = document.getElementById('c'); 
    var gl = c.getContext('webgl') || c.getContext("experimental-webgl"); 
    gl.clearColor(0,0,0.8,1); 
    gl.clear(gl.COLOR_BUFFER_BIT); 
</script> 
</body> 
</html> 

come si potrebbe usare quella? Ho provato 3D prima, ma non ho davvero capire

  • se si pensa di "vere" lingue sono difficili, si avrà un sacco di problemi con WebGL. Sotto certi aspetti è piuttosto alto, per altri aspetti è piuttosto basso. Dovresti rispolverare la tua matematica (geometria) e prepararti per un duro lavoro.
  • three.js è una libreria molto apprezzata che ti permette di fare ancora un sacco di 3d senza occuparti direttamente di webgl, dai un'occhiata.