|
||||||
ROBOTICA
video
immagini
papers
progettati
costruiti
toolbox
vrml
simulatori
Collegamenti ad altri mondi Vrml : il nodo Anchor |
Una delle caratteristiche
più interessanti del WWW è la sua capacità di connettere tra loro una mole impressionante
di dati. Ogni pagina html può contenere links ad altre pagine facendo diventare
il Web come una specie di immenso ipertesto. Seguendo questa filosofia sarebbe
dunque molto bello poter introdurre dei collegamenti anche nei nostri mondi.
Per esempio si potrebbe
creare una città in vrml semplicemente creando le strade e le palazzine che
le fiancheggiano. Quando si cerca di entrare in una casa, si clicca su una
porta e automaticamente si carica il mondo vrml relativo alla casa prescelta.
Quando ce ne usciamo si ricarica il mondo esterno e così via.
In pratica non si fa
altro che rendere disponibile un teletrasporto per passare in qualsiasi altra
parte (compatibilmente con quanto scritto nel file vrml ovviamente!).
Links in mondi vrml possono
essere rivolti sia ad altri mondi vrml che a pagine html ; dipende semplicemente
dall’url che si specifica.
Il nodo impiegato è il
nodo Anchor e la sua sintassi è molto semplice (sempre tutto molto semplice...
le cose difficili ancora non arrivano). Dobbiamo associare all’ancora qualcosa
di visibile da parte dell’utente. Per esempio potremmo definire una box e
associare al click sopra di essa il teletrasporto.
Vediamo un esempio di
utilizzo di questo nodo.
Ovviamente l’oggetto
che funge da ancora è fornito dal nodo Shape contenuto nel campo children
(nulla vieta di avere più nodi Shape). L’indirizzo del file a cui saltare
è contenuto nel campo url.
Quando l’utente porta
l’icona del mouse sopra un oggetto cui è associato un nodo Anchor, compare
la scritta contenuta nel campo description. A questo punto, cliccando, il
browser procederà a rimpiazzare la scena con la nuova, indicata nel campo
url.
#VRML V2.0 utf8
# esempio di utilizzo del nodo Anchor
Anchor {
url “mondo2.wrl”
description “Collegamento ad un altro mondo vrml”
children [
Shape {
appearance Appearance {
material Material { emissiveColor 0 1 0 }
}
geometry Box { size 1 1 1 }
}
]
}