English | French | Russian | Spanish | Japanese | Korean | Mandarin
Il tutorial che segue prevede che tu abbia fatto pratica col tutorial 2: Herr Inspektor L'integerrimo Ispettore.
Più in basso ci si riferirà agli Spreads come ad una lista di dati; anche propagazione di dati rende molto bene l'idea. In ogni caso gli spreads sono fondamentali, e la loro esatta comprensione supercalifragilistichespiralidoserà le tue patches.
Semplificando, per iniziare potremmo dire che con spread si indica né più né meno che una lista. Una lista di dati arbitrari, che siano valori, stringhe, colori, ecc. Un singolo dato di questa lista viene chiamato Slice.
Sai già che attraverso un pin di un nodo si possono gestire determinati tipi di dati (valori, stringhe, colori, enumeratori, nodi). Quello che non è stato ancora detto è che ogni pin non gestisce necessariamente solo un'istanza del dato cui si riferisce, ma potenzialmente trasporta, trasmette un'intera lista di dati, "a whole spread of data"
Puoi scoprire il numero di slices di un pin spostandoci sopra il cursore del mouse. Genera un nodo LinearSpread (Spreads) e sposta il cursore sopra sopra il pin di output. Niente di particolare. Setta il pin SpreadCount del nodo a 5 e sposta di nuovo il cursore sul pin di output: dopo il valore appare un (5).
Così il suggerimento ti dice che ci sono 5 slices , ma te ne mostra solo una. Ti sta facendo un favore, perché se invece che di 5, disponesse di 10.000 (o anche mmmillemila) slices, non vorresti mai che te le elencasse tutte. Ma c'è un modo per controllare queste slices. Nel tutorial precedente è stato mostrato come cliccando sulle freccette della colonna centrale dell'Ispettore (tra il valore del pin ed il suo nome), dopo aver selezionato il nodo che ci interessa, si possono osservare tutte le slices di uno spread.
Assieme al nodo LinearSpread (Spreads) ci sono molti altri nodi che possono generare spreads. Se vuoi, consulta HelpPatches a proposito dei nodi CircularSpread (Spreads), RandomSpread (Spreads) e I (Spreads). Poi torna qui, però.
Ragionaci sopra. C'è un pin che trasporta uno spread di 5 slices, come reagisce un nodo se lo spread è collegato ad uno dei suoi input pins? Per vedere cosa succede, genera un nodo Renderer (GDI) ed un nodo Point (GDI) che connetterai al renderer. Il risultato è un + al centro del nodo Renderer (GDI) (oppure nel punto che corrisponde alle coordinate "X" ed "Y" inserite negli input pins del nodo Point (GDI). Ora connetti l'output pin del nodo LinearSpread (Spreads) allo X input del nodo Point (GDI).
Quello che vedi è l'intelligente nodo Point (GDI) che gestisce uno spread. Semplicemente disegna i suoi + non una volta sola, ma cinque, dato che riceve una lista di cinque coordinate in base alle quali disegnare. Ovvio, eh? Se tu fossi stato un punto, che avresti fatto? E cosa avresti fatto se fossi stato connesso/a ad un altro spread con un altro valore inserito in un altro pin?
Duplica (Ctrl+D) il nodo LinearSpread (Spreads), imposta il suo SpreadCount pin a 2, connettilo allo Y input pin del nodo Point (GDI) ed osserva quello che succede.
Hai capito? Il nodo Point (GDI) riceve 5 valori nello X input pin e 2 valori nell'Y input pin. Ecco come si comporta:
Tutto qui. Questo è il modo in cui ogni nodo si rapporta con gli spreads attraverso i suoi input pins. Sempre che l'input pin accetti gli spreads. Se non lo fa, scarta tutte le slices ad eccezione della prima. Per capire se un input pin accetti o meno outputs dagli spreads, controllalo nell'Ispettore: se prima del suo nome trovi questo ">" o questo ">>" significa che li accetta.
Non fa mai male guardarsi questo video tutorial sugli spreads.
Se tutto va per il verso giusto, nella maggior parte dei casi non dovrai gestire singole slices, dato che quasi ogni nodo può rapportarsi con gli spreads. Naturalmente ci sono però delle buone ragioni per accedere ad una singola slice. Supponiamo che ci sia questa necessità, e che il nostro obiettivo sia gestire manualmente la terza slice che viene fuori dal primo LinearSpread (Spreads). Quindi inseriamo nella patch un nodo SetSlice (Spreads) come mostrato sotto.
L'input alla destra estrema del nodo SetSlice (Spreads) segnala al nodo quale slice vogliamo modificare. Siccome le slices sono numerate a partire dallo 0 (zero), se vogliamo modificare la terza dobbiamo inserire un 2. Il secondo input pin del nodo SetSlice (Spreads) è il nuovo valore che vogliamo assegnare alla terza slice. Modifica quel valore e vedrai il terzo + muoversi indipendentemente dagli altri.
Penserai che questo sia abbastanza ganzo, ma dai un'occhiata a questo:
Attraverso il nodo I (Spreads) diciamo al nodo SetSlice (Spreads) che vogliamo gestire non solo la terza slice, ma tutte quelle che vanno dalla prima alla terza. Con un altro nodo LinearSpread (Spreads) generiamo questi tre valori....
E così via. Ora ogni volta che penserai che ci sarà un problema uno spread verrà in tuo soccorso.
A questo punto potrebbe essere interessante aprire le helppatches
dei nodi: GetSlice (Spreads), Stallone (Spreads), Queue (Spreads) e Cons (Spreads).
La serie dei tutorials prosegue spiegando alcune cose che dovresti sapere sugli IOBoxes.
anonymous user login
~4d ago
~6d ago
~8d ago
~11d ago
~11d ago
~18d ago
~25d ago
~25d ago
~26d ago
~1mth ago