public static Ponto?Inter(Segmento seg, Reta r) { Ponto?p = Reta.Inter(r, seg.r); if (p == null) { return(null); } if (r.Contem(seg.p1)) { return(seg.p1); } if (r.Contem(seg.p2)) { return(seg.p2); } return(seg.Contem((Ponto)p) ? p : null); }