Visualizzazione dei risultati da 1 a 5 su 5

Discussione: "puntatori" in js

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    "puntatori" in js

    ciao.
    Ho visto che in js esiste un modo di trattare le variabili come se fossero puntatori c (modifico una variabile e la modifica si riperquote su un altra variabile "linkata" ).
    Mi ha spiegato qualcosa CarlMarx ma volevo capire bene.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    vi chiedo questo per il seguente motivo:

    ho un oggetto camera e un oggetto render.
    L'oggetto camera ogni volta che muovo il mouse crea una serie di matrici.
    L'oggetto render ogni volta che nell' oggetto camera cambia la posizione o qualcosa dovrebbe andare a prendersi queste matrici ed applicarle(è l'oggetto che fa il draw in webgl).

    l'oggetto camera è incapsulato nell oggetto render .
    A questo punto nelll'oggetto camera dovrebbe esserci un riferimneto all oggetto render , per fare render.Update();

    e nell oggetto render dovrebbe esserci un riferimento all' oggetto camera , per andare a prendere le matrici , tipo Camera.GetAllMatrix().


    com ' è il modo migliore per fare questo in js?
    perchè mi sto accorgendo che sto utilizzando js come se fosse c++ e questo non è molto corretto.

    grazie

  3. #3
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Originariamente inviato da giuseppe500
    vi chiedo questo per il seguente motivo:

    ho un oggetto camera e un oggetto render.
    L'oggetto camera ogni volta che muovo il mouse crea una serie di matrici.
    L'oggetto render ogni volta che nell' oggetto camera cambia la posizione o qualcosa dovrebbe andare a prendersi queste matrici ed applicarle(è l'oggetto che fa il draw in webgl).

    l'oggetto camera è incapsulato nell oggetto render .
    A questo punto nelll'oggetto camera dovrebbe esserci un riferimneto all oggetto render , per fare render.Update();

    e nell oggetto render dovrebbe esserci un riferimento all' oggetto camera , per andare a prendere le matrici , tipo Camera.GetAllMatrix().


    com ' è il modo migliore per fare questo in js?
    Per farlo nella maniera che hai descritto devi usare i getters e i setters. Purtroppo però è una sintassi che è diventata standard da relativamente poco tempo, fino a qualche anno fa ogni browser aveva la sua (lo so che per chi è abituato col c è una cosa assurda… ma benvenuto nel mondo di javascript e della guerra tra browsers ). Comunque, ecco la sintassi standard (recente):
    • Object.defineProperty (è il metodo completo, consente di specificare se la chiave di un oggetto è scrivibile, enumerabile e configurabile, oltre ai getters e ai setters),
    • get (consente di eseguire delle operazioni ogni qualvolta l'interprete tenta di accedere al valore della chiave di un oggetto),
    • set (consente di eseguire delle operazioni ogni qualvolta l'interprete tenta di assegnare un valore a una chiave di un oggetto – è questo quello che t'interessa!).

    Queste sintassi in sostanza ti consentono di generare un “evento” ogni qualvolta i valori dell'oggetto camera vengono modificati. Tuttavia il mio consiglio, vista la standardizzazione recente nei vari browsers dei getters e dei setters, è di scrivere i valori dell'oggetto camera tramite una funzione che, una volta chiamata, aggiorni anche l'oggetto render. È anche vero però che, siccome stai scrivendo un'applicazione webgl, potresti fregartene del tutto dei vecchi browsers, visto che la tua applicazione non sarebbe supportata dai vecchi browsers a prescindere dai getters e dai setters. Valuta tu.

    Originariamente inviato da giuseppe500
    perchè mi sto accorgendo che sto utilizzando js come se fosse c++ e questo non è molto corretto
    Io credo invece che ti possa dare una marcia in più per capire in profondità cos'è javascript, a differenza dei tanti utenti che partono direttamente da qui. Tra l'altro credo che cominciare da subito a lavorare con gli oggetti sia il modo migliore per comprendere a fondo questo potentissimo linguaggio.

    P.S. Per curiosità… che tipo di applicazione stai scrivendo?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    grazie Marx,
    sto scrivendo un visualizzatore webgl per sketchup, collada e ifc.
    Ho un applicativo c++ che crea un xml con i vari attributi dei vertici (normali,colore , posizione ecc...)e il tipo di materiale, luci eccc... dai files di questi formati e mi crea una cartella con appunto l'xml e le textures.
    Poi da js faccio il parsing dell xml(esporto in un formato semplicissimo) e visualizzo la mesh con webgl.
    Per adesso è un gioco poi chissa?

    ciao!

  5. #5
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Se ti può interessare un mio amico ha scritto questo fantastico renderer 3D in javascript: http://www.nihilogic.dk/labs/canvas3dtexture_0.2/, grazie a al quale abbiamo scritto insieme questo gioco di scacchi: http://htmlchess.sourceforge.net/demo/example.html (devi cliccare su "3D view" per capire di che si tratta)… È un ottimo codice su cui smanettare… e per comprendere a pieno la potenza di javascript

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.