Direzione Vettori

-17.9039233298014,60.3403586071519,0
-6.137250963623,62.5066004504739,0
197.361647188759,67.9728328249046,0

sopra ho postato 3 vettori dove il secondo è quello che m’interessa perché a differenza degli altri due
si avvicina maggiormente più vicino in direzione verso l’asse Y

la domanda è: c’é un componente in GH o un calcolo da fare che mi seleziona il secondo vettore,
escludendo quindi gli altri due che vanno in direzioni totalmente diverse della direzione dall’asse Y?

C’è un componente Pufferfish e, anche, una mia interpretazione.
vettori.gh (20,5 KB)


Ovviamente c’è la soluzione banale di misurare l’angolo con il componente dedicato.

In alternativa al giusto suggerimento di Leopoldo,
visto che avevi chiesto a cosa servisse il prodotto scalare …

Ricavi il vettore unitario dai vettori che vuoi confrontare
Poi fai il prodotto scalare tra i vari vettori unitari e il tuo vettore di riferimento (qui l’asse Y)
Il valore maggiore tra i prodotti scalari indica il vettore con direzione piu’ ‘vicina’ all’asse Y

Se non e’ chiaro provo poi a buttar giu’ una piccola definizione … :slight_smile:
( Adesso devo andare al mercato … )

EDIT

salvio-20.gh (11,4 KB)

ciao Leopoldo, si hai ragione chissà perché ieri sera mi ero intestardito di voler trovare una soluzione tramite le cifre che compongono il vettore. . . . sono il peggior nemico di me stesso ahahahah :joy:

ps usando il componente Angle come da foto postata va bene anche nel mio caso?
oppure può dare risultati sfalsati? essendo che nella conclusione la tua def è diversa. . . .

ciao Emilio, mi sa che stavolta mi hai letto nel pensiero :wink:
mi ero domandato se col prodotto scalare fosse possibile
ma se avessi provato di sicuro filtravo il valore più piccolo :sweat_smile:

Emilio scusa c’é un motivo particolare del perché hai usato quella combinazione di componenti per filtrare il vettore giusto? prendendo come esempio la foto appena postata se inserisci il valore del Dot Product
in entrambi input del SortList in uscita A dovresti ritrovarti lo stesso risultato e se nelle due uscite K e A
imposti il ReversList col ItemList a 0 ti ritrovi il vettore giusto. nel mio caso non’é stato necessario perché
col componente Angle serviva filtrare l’angolo più piccolo, a differenza del valore maggiore di DotProduct.

Si può anche fare.
vettori a.gh (8,2 KB)

1 Mi Piace

Se invece del prodotto scalare usi quello vettoriale (crossproduct), devi scegliere proprio il vettore piu’ corto. :grinning:

Si’ … io GH lo mastico pochino pochino, quindi il primo modo che trovo di fare quello che serve per me va bene. :grinning_face_with_smiling_eyes:
Tu ovviamente puoi semplificarti la definizione come preferisci. :grinning:

dai non fare il modesto, ho visto alcune def che hai fatto che io non ci capisco proprio nulla :wink:

avevo il dubbio se potesse funzionare, dovrò provare. vedi che poi trovo problemi e debbo chiederti aiuto :laughing:

1 Mi Piace

:+1:

bella questa, mi piace. quindi è fattibile usando i valori del vettore grande Leopoldo :clap:

È una definizione molto limitata.
Si può migliorare un po’ ma resta sempre poco pratica.
vettori a.gh (15,9 KB)

img1

poco pratica sopratutto quest’ultima che inizia a contorcesi un po. ma in che senso limitata?
non funziona in tutti i casi?

ps giusto per conferma: le prime due soluzioni quella che calcola l’angolo e del DotProduct vanno bene?

Ciao Emilio

penso sia l’approccio migliore. Peraltro il segno del prodotto scalare verifica il verso.

Sergio

1 Mi Piace

Poco pratica nel senso che si limita a considerare l’angolo più vicino al Vettore (0,1,0).
Con quest’altra definizione invece si può trovare l’angolo più vicino a una direzione qualunque.
Fermo restando che con Angle o Closest Vector si fa prima.
E se ci sono due due vettori simmetrici rispetto la direzione base, quale prendiamo?
vettori b.gh (23,8 KB)

img1

1 Mi Piace

eeee bella domanda. . . . forse mi sbaglio ma nella tua domanda intravedo anche un barlume di soluzione?

No ho una soluzione.
Se i vettori sono identici si potrebbe scegliere in base all’angolo “assoluto”.
img1

Ciao Leopoldo

una soluzione potrebbe essere prendere quello con prodotto vettoriale positivo.

Sergio

Ciao Sergio,
Il problema è che GH mi restituisce due valori uguali.
Non so se sbaglio qualcosa nella definizione.
img1

scusa Leopoldo e con l’angolo assoluto come hai specificato prima che effetto ha su i due vettori evidenziati?

(non mi è del tutto chiaro lo scopo dell’immagine)

Ovviamente non ha nessun effetto sui vettori.
Dato che ci sono due soluzioni si tratta solo di sceglierne una.
Questo è un criterio.
Si potrebbe anche estrarre a sorte.

essendo che non consoco l’operazione per trovare angolo assoluto
e dalla foto non mi è ben chiaro le operazioni che hai effettuato.
(quindi se potevi descriverle?)

Definizione per trovare l’angolo rispetto all’asse X.
angle.gh (13,6 KB)