Trovare punti perpendicolari da un punto su curva chiusa

Non so, a me non viene in mente niente.
Forse qualcun altro ha un’idea migliore. :grinning:

Se serve, ho provato a buttar giu’ uno script molto rozzo, che controlla l’angolo in 1000 punti,
poi interpola una curva che interseca con l’asse X per trovare i parametri dei tuoi punti.

Per maggiore precisione, aumenta il numero dei punti.

import rhinoscriptsyntax as rs

def main():
  cu = rs.GetObject( 'Curve ?' )
  pt = rs.GetPoint( 'point ?' )
  us = rs.DivideCurve( cu, 999, False, False )
  pts = []
  for u in us:
    p = rs.EvaluateCurve( cu, u )
    t = rs.CurveTangent( cu, u )
    v = rs.VectorUnitize( pt - p )
    cos = t * v
    pts.append( ( u, cos, 0 ) )
  ic = rs.AddInterpCurve( pts )
  ax = rs.AddLine( ( 0, 0, 0 ), ( us[ -1 ], 0, 0 ) )
  ts = rs.CurveCurveIntersection( ic, ax )
  for t in ts:
    u = t[ 1 ].X
    rs.AddPoint( t[ 1 ] )
    pc = rs.AddPoint( rs.EvaluateCurve( cu, u ) )
    rs.AddLine( pt, pc )

main()