» it.Pins e Tipi di Dati
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

it.Pins e Tipi di Dati

English | Russian

The original english version of this page is newer and may contain information this translation does not have! Click here to view the english version.

Un input può essere collegato solo ad un output. Non è possibile connettere tra di loro due inputs o due outputs.
Si può cominciare una connessione da un output verso un input, e viceversa. Non tutti gli output pins possono però essere connessi con qualsiasi input pin. Questo dipende dal tipo di dati che u pin contiene. Quindi i numeri potranno essere connessi solo con numeri, e colori con colori. Non è possibile connettere pins di tipi differenti.

Suggerimento: i pins abbinabili diventeranno più grandi, così che individuarli sarà semplice ed impossibile fare errori.

Se un input pin ha una connessione in ingresso, né dall'Ispettore né dal pin stesso sarà possibile modificare il valore del pin. Un pin accetta solo una connessione.

Suggerimento: Se si prova a fare una nuova connessione su un pin già connesso, la connessione esistente verrà cancellata e verrà invece accettata quella nuova.

Guarda inoltre questo video tutorial.

Valori Numerici

I valori numerici (o anche solo valori) fanno parte di quel tipo di dato che è più utile in vvvv - soprattutto perché il concetto di numero è dimostrato come sia fondamentale nel calcolo. Diversamente da altri linguaggi vvvv non distingue tra tipi differenti di valori numerici: qui interi, con la virgola, booleane, bang e bytes vengono trattati per quello che sono, e cioè "valori". Giocare con vvvv diventa quindi semplice ed intuitivo e soprattutto la gestione di tipi di valori diversi è molto flessibile. Si può connettere un nodo che genera valori ad un nodo logico ch risponde ad input booleani: ebbene sì, il nodo logico si comporterà come se ricevesse solo 0 e 1. Tutti i pins numerici sono costruiti per essere solidi, quindi è possibile collegare tutto a tutto, tipo un sintetizzatore analogico. I processori moderni ormai gestiscono tutto meglio se organizzato in virgola mobile, piuttosto che convertire tra differenti rappresentazioni; così non abbiamo più problemi di performance.

Quando si usa un numero a virgola mobile come intero, il valore viene arrotondato.
Qaundo si usa un numero a virgola mobile come Booleana, tutto quello che è sopra 0.5 è TRUE, tutto il resto è FALSE.
L'output di una booleana restituisce 0 o 1.

Sottotipi

Il concetto di connettere tutto a tutto può anche essere una ventata d'aria fresca ed aprire la strada a nuove possibilità, ma può portare anche a risultati inaspettati, lavorando con le formule; abbiamo cercato di tappare i buchi che questo tipo di conversione finisce per generare nelle funzioni logiche e matematiche, con l'intenzione di sfruttare queste estensioni per ottenere qualcosa di più sul piano estetico, ma naturalmente non esiste una soluzione ideale e definitiva. La maggior parte di queste estensioni consiste nel convertire valori negativi in positivi, o estendere l'intervallo degli interi con operazioni d'aritmetica modulare.
Resta comunque il fatto che questa libertà è inutile, quando si cerca di modificare un valore Boole in passi da 0.001. Per questo è stato introdotto il concetto di sottotipo, subtype.

I sottotipi ti aiutano ad usare i valori corretti: tutti i valori numerici hanno associato un sottotipo, che include flags°°° per valori circolari (come gli angoli), specificazione di valori di default, valori minimi e massimi, dimensione minima della variazione, step size, indicazione del tipo di valore (intero, boole...), margini positivi e negativi, etc. Ogni valore può inoltre essere associato ad un unità fisica. Il sottotipo viene ignorato dai calcoli, ed è usato dalla GUI per mostrare o modificare i valori.

°°° Si richiede aiuto per trovare la traduzione corretta dall'articolo originale.

Stringhe

Esiste un'ampia varietà di nodi per processare le stringhe e generarci applicazioni. Le stringhe possono avere qualsiasi lunghezza, includere qualsiasi carattere in codifica UNICODE (UTF8) incluso lo zero. Si può scegliere tra il gruppo di caratteri UTF8 ed il gruppo ANSI.

Anche le stringhe hanno un loro sottotipo che contiene informazioni se la stringa debba essere trattata come nome di un file o una directory, se possa contenere più righe, quale sia il valore di default, etc. Queste informazione vengono usate nella GUI all'immissione o alla modifica delle stringhe.

Colori

Come è ovvio, il colore è un tipo di dato fondamentale in vvvv. Si possono sommare, sottrarre, miscelare colori, convertire la rappresentazione da HSL ad RGB in maniera semplice ed intuitiva.

Enumerazioni

Poter scegliere tra opzioni già impostate è ormai un'acquisizione della programmazione moderna, pertanto questo tipo di dato è stato sviluppato anche in vvvv. Molto spesso serve a generare menu a tendina, ma sono possibili anche semplici operazioni; pur cercando di limitare l'uso delle enumerazioni, non è comunque possibile evitarle.

Non è possibile connettere pins che contengono enumerazioni differenti.

I Pins del Nodo, Node Pins

Oltre ai suddetti tipi di dati di base ci sono Pins del Nodo, Node Pins, che utilizzano un tipo avanzato di dati. Attraverso i Node Pins, è possibile intervenire con un incisività maggiore nel flusso di dati nel grafico. Di questi pins si deve dire che in genere non sarà possibile vederne o manipolarne direttamente i dati, in parte per motivi di prestazioni, ma anche perché i dati potrebbe troppo astratti per poter essere visualizzati o avere qualsiasi utilità.

Per un utente la differenza più importante tra i tipi di dati di base e Node Pins è che questi ultimi non mantengono il loro valore quando vengono scollegati, tornando ad impostarsi sul valore di default.

Fino a questo momento i nodi ed i relativi tipi di Node Pins esistenti sono:

Transforms

I Transforms sono usati nel DirectX Renderer per cambiare la forma degli oggetto o delle texture. Si possono connettere diversi Transforms e concatenarli. Notate che il link tra due Transforms non contiene i valori già trasformati, ma le indicazioni per trasformarli, così da consentire la generazione di sistemi con una gerarchia complessa.

I Transforms usano internamente delle matrici, ma possono passare ad un altro metodo per permettere trasformazioni arbitrarie 3d e 2d.

Renderstates e Samplerstates

I Renderstates vengono usati da DirectX per controllare vari parametri della scheda grafica. Anche in questo caso si possono concatenare più Renderstates. Anche in questo caso non vengono trasferiti dati già convertiti, ma le indicazione per la conversione.

Textures

In attesa che questo paragrafo venga scritto, consultare questa pagina per concetti medio-avanzati e non direttamente connessi all'argomento.

Meshes e Vertexbuffers

In attesa che questo paragrafo venga scritto, consultare questa pagina per concetti medio-avanzati e non direttamente connessi all'argomento.

DirectShow Audio- e Videostreams

Esistono molti nodi della categoria DirectShow Che hanno pinsDirectShow Stream. Questi pins vengono mappati direttamente sulle connessioni interne del grafico del flusso di dati di Microsoft DirectShow. Poiché i dati vengono potenzialmente trasmessi tramite una memoria kernel altamente efficiente o tramite hardware dedicato, non possono essere mostrati nel suggerimento che compare al passaggio del cursore.

Per le limitazioni di DirectShow si può connettere solo un output pin ad un input pin.

anonymous user login

Shoutbox

~9d ago

joreg: Postponed: Next vvvv beginner course starting April 29: https://thenodeinstitute.org/courses/vvvv-beginner-class-summer-2024/

~1mth ago

~1mth ago

joreg: The Winter Season of vvvv workshops is now over but all recordings are still available for purchase: https://thenodeinstitute.org/ws23-vvvv-intermediates/

~2mth ago

schlonzo: Love the new drag and drop functionality for links in latest previews!

~2mth ago

joreg: Workshop on 29 02: Create Sequencers and Precise Clock Based Tools. Signup here: https://thenodeinstitute.org/courses/ws23-vvvv-08-create-sequencers-and-precise-clock-based-tools-in-vvvv-gamma/