Creare curva da intersezioni

differenze intersezioni tra Rh e Gh:
la curva aperta in basso a Dx selezionata, si tratta di una intersezione fatta in Rh tra due curve uguali
la stessa cosa usando una curva aperta in Gh non sono riuscito a realizzarla
col componente intersezione curve/curve mi ritorna solo il punto inizio/fine delle due curve
(da osservare il cerchio grande in alto a Dx non riporta due punti con la stessa coordinata ma diverse)
in pratica l’unico metodo per ottenere l’intersezione dell’intera curva in Gh ho usato 3 componenti in alto a Dx

è corretto usare quei 3 componenti essendo che per quello che so,
dovrebbero servire per altro, oppure per questo risultato bisogna usare tutt’altri metodi?

ps le due intersezioni del cerchio grande, ho pensato che si trattasse di tolleranza ma cambiando è uguale.

il componente CCX su grasshopper restituisce solo punti, è stato pensato così.

Per ottenere le sovrapposizioni di due curve, serve usare i metodi di rhino:


c#ccx.gh (3,2 KB)

  private void RunScript(Curve A, Curve B, ref object parameter, ref object interval)
  {
    double t = this.RhinoDocument.ModelAbsoluteTolerance;
    Rhino.Geometry.Intersect.CurveIntersections ints = Rhino.Geometry.Intersect.Intersection.CurveCurve(A, B, t, t);
    List<double> parameters = new List<double>();
    List<Interval> intervals = new List<Interval>();
    foreach(Rhino.Geometry.Intersect.IntersectionEvent ie in ints){
      if(ie.IsPoint){parameters.Add(ie.ParameterA);}
      if(ie.IsOverlap){intervals.Add(ie.OverlapA);}
    }
    parameter = parameters;
    interval = intervals;
  }

In questo caso sto estraendo i parametri e intervalli solo della curva A.

2 Mi Piace

grazie @RiccardoMajewski funziona anche per le sovrapposizioni di curve aperte :+1: