哪位有时间帮我看一下如下代码有什么错误。
  public static bool panfenqu(PointF da, PointF db, PointF dc, PointF dd, PointF de, PointF df, PointF pa)
        {
            PointF m = PointF.Empty;
            PointF n = PointF.Empty;
          if (db.Y > de.Y)
          {m.X = fun(da, db, de.Y); m.Y = de.Y; n.X = fun(de, df, db.Y);n.Y=db.Y ;
                       if(AB(da,m,pa)&&AB(m,de,pa)&&AB(de,dd,pa)) return true;
                       else if(AB(m,db,pa)&&AB(db,n,pa)&&AB(n,de,pa)&&AB(de,m,pa)) return true;
                       else if(AB(db,dc,pa)&&AB(df,n,pa)&&AB(n,db,pa)) return true;
                       else return false;}
            else if (db.Y == de.Y)
            {
                if (AB(da, db, pa) && AB(db, de, pa) && AB(de, dd, pa)) return true;
                else if (AB(db, dc, pa) && AB(df, de, pa) && AB(de, db, pa)) return true;
                else return false;
            }
            else
            {
                n.X = fun(db, dc, de.Y); n.Y = de.Y; m.X = fun(dd, de, db.Y); m.Y = db.Y;
                if (AB(da, db, pa) && AB(db,m, pa) && AB(m, dd, pa)) return true;
                else if (AB(db, n, pa) && AB( n,de, pa) && AB(de, m, pa) && AB(m, db, pa)) return true;
                else if (AB(n, dc, pa) && AB(df, de, pa) && AB(de, n, pa)) return true;
                else return false;
            }
        }