Punto Perpendicolare

Emilio, dopo la tua indicazione ho fatto delle prove su 3 curve e in questo modo
pare che funzioni anche se bisogna prima metterci le mani facendo una correzione:

in pratica vado a modificare il punto di giunzione della curva e in questo modo si va a modificare la posizione dei punti della derivata fino a ritrovarmi con solo “1” punto singolo che è distante da tutti come si vede in foto deve essere il primo punto e deve trovarsi sull’asse Y mentre il resto dei punti deve continuare nella parte inferiore quindi vicino al punto di origine. in questo modo la curva che va a crearsi tende verso la posizione -0 quindi quando il piano si interseca alla curva ci si trova con un unico valore “x” negativo che ovviamente si va ad escludere prima del componente Evaluate di conseguenza mi riporta solo i 3 punti con valori positivi.

(se ad inizio curva ci sono più punti isolati in alto la curva che va a crearsi tenderà verso numeri positivi)

nel caso vorreste provare altre vostre curva e far sapere l’esito posto la def Gh: dev7.gh (13,6 KB)

ps sarebbe interessante sapere, invece di spostare di persona il seam della curva
se tramite un algoritmo sia possibile modificare/spostare la posizione dei punti derivati
(quindi in qualsiasi posizione si trovasse il seam, algoritmo dia come risultato solo punto distante come foto)

in effetti ri-osservando la foto noto che il primo punto coincide con l’altessa dell’ultimo punto. . . .

sembra se la soluzione non sia nemmeno così complicata:
in effetti basterebbe partizionare la lista dei punti in due blocchi
come da foto, il primo blocco parte dal primo punto fino a quando si trova il punto con Y = 0
(secondo punto selezionato in Gh “verde”)
quindi il secondo blocco da quest’ultimo punto con Y = 0 sino alla fine della lista
e spostare il secondo blocco nella porima parte per poi continuare col primo blocco

ps (per lo meno così da quello che vedo mi pare dovrebbe funzionare se l’intuizione di prima è corretta)

A me sembra che il problema dipende dal fatto che il punto da cui parte la retta e’ sulla curva.
Per forza l’angolo tra retta e tangente salta di 180 gradi tra prima e dopo il punto.

Eliminando un pezzetto di curva intorno al punto, la tua def sembra che funzioni

image

daccordissimo, avevo notato che il punto sfalsato si trovasse in genere a 1,5 mm dal punto di inizio
quindi eliminando un paio di mm per lato di curva il problema non si presenta ma mi sembra un pò brusca come soluzione non si va a gestire il problema ma direttamente ad eliminarlo

ho provato con questa modifica sono riuscito a riposizionare i due blocchi di punti
ma mi è sorto un secondo problema credo che il dominio della curva non coincida più
cuocendo la curva e usando il comando dominio mi compare tipo: 0 - 657 una cosa simile
(sono riuscito a spostare i punti, il dominio in Gh non’è ho proprio idea come fare)

ps a questo punto la soluzione più veloce per il problema, preferisco ricalcolare angolo alla fine della def
come nella penultima foto prima di questa cosi uso anche il componente Dot Product :wink:

Il punto sfalsato e’ fasullo, non considerarlo.
Se guardi il valore dell’angolo vedrai che (ovviamente) salta di 180 gradi esattamente sul punto di inizio.
Penso basti portare il seam della curva sul punto di inizio ed eliminare dal grafico primo e ultimo punto.
Certo vicino al punto di inizio la curva non e’ perpendicolare alla retta.

1 Mi Piace

ragazzi mi sa che ho commesso uno sbaglio nel file Gh condiviso ad inizio 3d
in pratica la definizione Originale di Riccardo usava il componente DividiCurva
mentre io nel file condiviso ho utilizzato i due componenti Range ed Evaluate

dev9

se ho controllato bene, usando il componente ORIGINALE utilizzato inizialmente da Riccardo
l’errore del punto singolo che porta ad allungare la curva della derivata non si dovrebbe presentare