Non so, a me non viene in mente niente.
Forse qualcun altro ha un’idea migliore.
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()