Hello, how to rotate a vector and scale its magnitude proportional to the angle to get a for example constant value on the y-axis?

A pani od matematyki nie uczyła jak liczyć miejsce zerowe funkcji, hm?
_

using UnityEngine;
public class MiejsceZeroweFunkcjiLiniowej : MonoBehaviour
{
[SerializeField] Vector2 _In = Vector2.one;
[SerializeField] float _InRotation = 0;// degrees
[SerializeField] Vector2 _Out;
[SerializeField] float _yCutoff = 1.5f;
void OnValidate ()
{
float inVecAngle = Mathf.Atan2( _In.y , _In.x );// radians
float inVecAngleRotated = inVecAngle + Mathf.Deg2Rad*_InRotation;// radians
Vector2 inVecRotated = new Vector2{ x=Mathf.Cos(inVecAngleRotated) , y=Mathf.Sin(inVecAngleRotated) };// unit vector, for simplicity
float fx = inVecRotated.y / inVecRotated.x;// f(x) = (vec.y/vec.x)*x + 0
float fy = inVecRotated.x / inVecRotated.y;// f(y) = (vec.x/vec.y)*y + 0
_Out = new Vector2{ x=fy*_yCutoff , y=_yCutoff };
}
void OnDrawGizmos ()
{
Gizmos.color = Color.yellow; Gizmos.DrawLine( new Vector3{x=-10,y=_yCutoff} , new Vector3{x=+10,y=_yCutoff} );
Gizmos.color = Color.white; Gizmos.DrawRay( Vector3.zero , _In );
Gizmos.color = Color.red; Gizmos.DrawRay( Vector3.zero , _Out );
}
}