# Linea vicino col punto

**URL:** <https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152>\
**Category:** Grasshopper\
**Created:** [5 Maggio 2020, 9:30pm UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152 "2020-05-05T21:30:43Z")\
**Posts on this page:** 20\
**Page:** 3

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [8 Maggio 2020, 4:00pm UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/42 "2020-05-08T16:00:50Z")

</div>

Bravo Salvio !

Mi ero incasinato …  
Adesso sono arrivato a questo:

 ![image](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/2X/5/550cddc202cecb930cfd22c2d20d77511950feb3.png)

… Che e’ un po’ diverso dal tuo, ma non molto. 🙂

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [8 Maggio 2020, 4:07pm UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/43 "2020-05-08T16:07:31Z")

</div>

> [@emilio](#):
>
> Bravo Salvio !

eeee no “Bravo” tu!  
in questo caso lo hai “proprio modificato”  
mentre io ho prima eliminato e poi reinserito (avendo già una matrice da 16)  
quindi ho fatto un passaggio in più e vabbè (ci ho provato 😄)

ps ma alla fine mi avevi buttato assist già da prima  
perché in pratica mancava solo ricostruire la matrice

ahahahah lo dico io che sei proprio tremendo 😉

(in pratica la mia soluzione va bene creando una matrice da zero)

edit:  
anzi meglio usare “Replace” come hai fatto tu  
inserendo una lista base all’interno e cambiando  
gli indici che poi servono in base alla circostanza 👍

---

<div class="post-metadata">

**Author:** ![luca.filippone](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/luca.filippone/32/16173_2.png) [@luca.filippone](https://it.discourse.mcneel.com/u/luca.filippone)\
**Post date:** [8 Maggio 2020, 10:14pm UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/44 "2020-05-08T22:14:34Z")

</div>

> [@0904](#):
>
> meno componenti

Secondo me non è questo che deve preoccuparti: non sai quante righe di codice ci sono dietro un componente. Avrei potuto impacchettare la definizione in un unico componente: questo significa che é migliore di un’altra definizione che fa lo stesso lavoro? Secondo me a parità di obiettivo raggiunto da una definizione quello che conta è il tempo di esecuzione e le risorse hardware impiegate.

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [9 Maggio 2020, 12:28am UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/45 "2020-05-09T00:28:57Z")

</div>

@luca.filippone  
ti sfugge un dettaglio, che in GH i codici nei componenti sono già scritti, e questo implica che a parità di obiettivi la maggior resa sta nel minor numero di componenti. quindi se crei un cluster e all’interno ci metti 20 componenti che fanno il lavoro che ne possono fare 2 hai solo aggiunto codice inutile tutto qui.

il discorso sarebbe valido se con un linguaggio di programmazione crei due codici per lo stesso scopo, ma con due algoritmi differenti. in quel caso anche se il codice con maggior numero di righe e/o complesso risulta più veloce nell’esecuzione ed impatta meno sulle prestazioni allori si, in quel caso il discorso è valido. oppure altro esempio che mi viene in mente, si possono scrivere poche righe in Python, ma per la stessa funzionalità ce ne vogliono molte di più se le scrivessi in C ma questo non significa che il codice scritto in C impegna maggiormente l’elaborazione o la rallenta, anzi in questo caso è proprio l’opposto.

quindi riassumendo il tuo discorso è identico al mio: maggiore resa usando minori prestazioni.

---

<div class="post-metadata">

**Author:** ![luca.filippone](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/luca.filippone/32/16173_2.png) [@luca.filippone](https://it.discourse.mcneel.com/u/luca.filippone)\
**Post date:** [9 Maggio 2020, 6:41am UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/46 "2020-05-09T06:41:05Z")

</div>

> [@0904](#):
>
> notato da come assembli i componenti di GH fai tutti i passaggi di un calcolo matematico questo essendo da poco che hai iniziato a utilizzarlo quindi la poca conoscenza dei componenti e delle loro funzionalità vai a trovare soluzioni secondo i tuoi schemi di apprendimento.

É proprio così. Cerco di raggiungere l’obiettivo con gli strumenti che ho. 😊

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [9 Maggio 2020, 8:47am UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/47 "2020-05-09T08:47:47Z")

</div>

… Quando cerco di usare meno componenti … di solito e’ per non andare in confusione io, nel senso che mi perdo nel grafo della definizione. 😄  
( Ah, si’ … c’e’ anche il problema di postare l’immagine qui. 😉 )  
Se interessano le prestazioni possiamo attivare il Profiler.

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [9 Maggio 2020, 12:27pm UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/48 "2020-05-09T12:27:03Z")

</div>

> [@luca.filippone](#):
>
> É proprio così. Cerco di raggiungere l’obiettivo con gli strumenti che ho.

per tutti è così:  
un falegname se si costruisce una casa se la fa di legno,  
invece un muratore se la costruisce di mattoni ovviamente.

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [9 Maggio 2020, 12:28pm UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/49 "2020-05-09T12:28:09Z")

</div>

> [@emilio](#):
>
> Se interessano le prestazioni possiamo attivare il Profiler.

Emilio “Profiler” di cosa si tratta? e come si attiva?

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [9 Maggio 2020, 12:36pm UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/50 "2020-05-09T12:36:28Z")

</div>

> [@0904](#):
>
> come si attiva?

Tanto destro sul canvas  
Preferences  
Widgets

In alternativa:  
Menu’ File → Preferences …

Puoi attivare o disattivare il Profiler  
E puoi scegliere il tempo minimo da mostrare

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [9 Maggio 2020, 12:43pm UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/51 "2020-05-09T12:43:38Z")

</div>

> [@emilio](#):
>
> Puoi attivare o disattivare il Profiler  
> E puoi scegliere il tempo minimo da mostrare

ottimo a saperlo 👍  
ma quindi se collego un tot di componenti avendo un risultato alla fine che sia calcolo o geometria  
mi basta verificare il tempo di esecuzione di quest’ultimo per avere un resoconto della definizione?

edit:  
ma come mai non viene visualizzato su tutti i componenti?

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [9 Maggio 2020, 12:46pm UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/52 "2020-05-09T12:46:56Z")

</div>

Credo che il Profiler consideri i singoli componenti.  
Non so come fare per avere il tempo complessivo della definizione.

> [@0904](#):
>
> ma come mai non viene visualizzato su tutti i componenti?

> [@emilio](#):
>
> E puoi scegliere il tempo minimo da mostrare

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [9 Maggio 2020, 12:49pm UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/53 "2020-05-09T12:49:20Z")

</div>

👍

Thanks!

---

<div class="post-metadata">

**Author:** ![giuseppe](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/giuseppe/32/16416_2.png) [@giuseppe](https://it.discourse.mcneel.com/u/giuseppe)\
**Post date:** [9 Maggio 2020, 1:53pm UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/54 "2020-05-09T13:53:48Z")

</div>

Emi ti/vi segnalo questo post un po’ datato ma penso utile:

> **[How to find performance bottleneck with profiler widget?](https://discourse.mcneel.com/t/how-to-find-performance-bottleneck-with-profiler-widget/58399)**
>
> Hi! I´ve often encountered the situation where I need to pan around and search for quite a while before I find which components takes time to solve. (and currently I cant even find it) It would be really nice to be able to spot this more quickly. Is...

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [9 Maggio 2020, 2:16pm UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/55 "2020-05-09T14:16:56Z")

</div>

Ciao Giuspa.  
Grazie !

… Tanta roba interessante in quella discussione.  
Bisognera’ leggerla con calma. 🙂

---

<div class="post-metadata">

**Author:** ![luca.filippone](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/luca.filippone/32/16173_2.png) [@luca.filippone](https://it.discourse.mcneel.com/u/luca.filippone)\
**Post date:** [9 Maggio 2020, 2:57pm UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/56 "2020-05-09T14:57:07Z")

</div>

![image](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/2X/3/3f20016236a1980c70550886ba00ca8601a22d60.png)

🤤

😘

---

<div class="post-metadata">

**Author:** ![giuseppe](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/giuseppe/32/16416_2.png) [@giuseppe](https://it.discourse.mcneel.com/u/giuseppe)\
**Post date:** [9 Maggio 2020, 3:17pm UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/57 "2020-05-09T15:17:33Z")

</div>

👍 almeno non diventi pazzo quando tutto rallenta…

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [10 Maggio 2020, 8:25pm UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/58 "2020-05-10T20:25:38Z")

</div>

> [@Gambler](#):
>
> ma non si può inserire l’espressione corretta e lasciare a GH il compito di arrotondare?

ciao Fabio infatti è quello che ho fatto grazie del suggerimento e scusa il ritardo 👍

ps  
con la definizione fatta sono riuscito ad ottenere lo scopo desiderato  
ma adesso mi servirebbe aggiungere un inizio diverso nella matrice

math.cos(math.radians(v))+math.cos(u[0])  
math.sin(math.radians(-v))+math.sin(u[2])  
math.sin(math.radians(v))+math.sin(u[2])  
math.cos(math.radians(v))+math.cos(u[0])

ho fatto anche delle variazioni tipo: cambiando indici e aggiungendo segno negativo, dove sbaglio?  
è un po un casino bisogna anche trasformare le coordinate xyz nella matrice 4x4 giusto?

---

<div class="post-metadata">

**Author:** ![Gambler](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/gambler/32/16276_2.png) [@Gambler](https://it.discourse.mcneel.com/u/Gambler)\
**Post date:** [11 Maggio 2020, 6:43pm UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/59 "2020-05-11T18:43:42Z")

</div>

> [@0904](#):
>
> math.cos(math.radians(v))+math.cos(u[0])  
> math.sin(math.radians(-v))+math.sin(u[2])  
> math.sin(math.radians(v))+math.sin(u[2])  
> math.cos(math.radians(v))+math.cos(u[0])

Ciao Salvio, per me è aramaico antico. 🤣  
Ma per curiosità:

- parliamo sempre di una matrice di rotazione attorno all’asse z?
- se sì, nella seconda riga, non dovrebbe esserci -sin(a)? … mi sembra che invece si calcoli +sin(-a) che non è la stessa cosa. Ma probabilmente non ho capito un tubo. 🤣

> [@0904](#):
>
> è un po un casino bisogna anche trasformare le coordinate xyz nella matrice 4x4 giusto?

Se intendi passare dalle coordinate cartesiane a quelle omogenee sì.  
Per due dimensioni serve una matrice 3x3, per tre dimensioni una matrice 4x4.

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [11 Maggio 2020, 7:59pm UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/60 "2020-05-11T19:59:05Z")

</div>

> [@Gambler](#):
>
> per me è aramaico antico.

Confermo … antichissimo !  
😄

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [11 Maggio 2020, 9:16pm UTC](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152/61 "2020-05-11T21:16:57Z")

</div>

> [@Gambler](#):
>
> Ciao Salvio, per me è aramaico antico.

> [@emilio](#):
>
> Confermo … antichissimo !

magari, mi piacerebbe conoscere aramaico antico 😄

 ![mtrx](https://global.discourse-cdn.com/mcneel/uploads/mcneel_it/original/2X/4/422668f8d1439dfad98da6de4726405f3d6f5328.png)

math.cos(math.radians(v)) +math.cos(u[0])  
math.sin(math.radians(-v)) +math.sin(u[2])  
math.sin(math.radians(v)) +math.sin(u[2])  
math.cos(math.radians(v)) +math.cos(u[0])

in pratica la “v” è la variabile con il quale ricavo i sin e cos (0.866, -0.500, 0.500, 0.866)

adesso usando lo slider mi fa ruotare oggetto partendo dal punto 0  
ma vorrei indicare un’altro punto come fulcro per la rotazione

es.  
dalle coordinate xyz del nuovo punto con variabile “u”  
ho estratto i due valori interessati x z convertiti in cos e sin  
e aggiunti alla formula, vedi seconda parte dopo il segno “+”  
ovviamente ho interscambiato i valori e aggiunto il “-” ad un sin  
(anche se nella seconda riga già c’è la variabile “v” col segno “-”)

non ho mai fatto questo tipo di operazioni quindi ho fatto un mio ragionamento

grazie per la pazienza Fabio ed Emilio 👍

[Pagina precedente](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152.md?page=2)

[Pagina seguente](https://it.discourse.mcneel.com/t/linea-vicino-col-punto/3152.md?page=4)
