Attributi degli oggetti grafici

Un attributo contiene un valore caratteristico per un certo oggetto

  1. viene sempre assegnato un valore di default
  2. si può assegnare un valore quando si richiama il costruttore
    s = sphere(radius = 1)
  3. si può aggiornare in qualsiasi momento (l’oggetto sarà immediatamente aggiornato nella scena)
    s.radius = 1.5
  4. si possono assegnare valori per attributi che non esistono (definiti dall’utente)
    s.sapore = ”acido”

Tutti gli oggetti hanno degli attributi: ball.pos, ball.color, ball.radius, …

Se aggiorni il valore di un attributo di un oggetto, come per esempio la sua posizione o il suo colore, vpython automaticamente visualizzerà l’oggetto alla nuova posizione oppure con il nuovo colore.

I valori degli attributi si possono impostare nel costruttore (il codice utilizzato per creare l’oggetto) e si possono modificare successivamente

ball = sphere(radius = 2)
...
ball.radius = 2.2

In aggiunta agli attributi già presenti è possibile crearne di nuovi (sia immediatamente che successivamente).

Attributoarrowboxconecylinderhelixellipsoidpyramidringsphere
axis<1,0,0><1,0,0><1,0,0><1,0,0><1,0,0><1,0,0><1,0,0><1,0,0><1,0,0>
coils5
color<1,1,1><1,1,1><1,1,1><1,1,1><1,1,1><1,1,1><1,1,1><1,1,1><1,1,1>
emissiveFalseFalseFalseFalseFalseFalseFalseFalseFalse
height0.2 1.02.01.02.2
length1.01.01.01.01.01.01.00.2 2.0
opacity1.01.01.01.01.01.01.01.01.0
pos<0,0,0><0,0,0><0,0,0><0,0,0><0,0,0><0,0,0><0,0,0><0,0,0><0,0,0>
radius1.01.01.00.51.01.0
shininess 0.60.60.60.60.60.60.60.60.6
size<1,0.2,0.2> <1,1,1><1,2,2><1,2,2><1,2,2><1,1,1><1,1,1><0.2,2.2,2.2><2,2,2>
thickness0.050.1
up<0,1,0><0,1,0><0,1,0><0,1,0><0,1,0><0,1,0><0,1,0><0,1,0><0,1,0>
visibleTrueTrueTrueTrueTrueTrueTrueTrueTrue
width0.2 1.01.02.2

Osserva

  • alcuni attributi sono comuni a tutti gli oggetti grafici
    • axis, pos, up
    • color, emissive, opacity, shininess, visible
  • alcuni attributi sono specifici…
  • l’attributo pos ha due significati
    • il centro: box, sphere, ring
    • una base: arrow, cone, cylinder, helix, pyramid
  • l’attributo thickness ha due valori diversi di default
    • helix: radius/20
    • ring: radius/10
  • l’attributo size specifica le dimensioni nelle tre direzioni, si possono impostare per deformare a piacere ellipsoid e ring
  • attributi addizionali: canvas, texture