Revit点与线,线与线的关系处理

一.点与线的处理

       IntersectionResult Project(XYZ point) 该函数用来获取曲线上距离该点最近的点

       上述函数分为两种情况:

               1.如果曲线为直线,那么求取的点,肯定是通过做垂足获取的,即是距离最近的点。

               2.如果是一般的曲线(有界限),那么如果通过垂足取得的点,在曲线上,那么就返回该点。如果通过垂足求取的点,不在曲线上,那么就会返回曲线的端点。

二.点是否在曲线内部

        public bool IsInside(double param)  

        public bool IsInside(double param,out int end) end返回参数表示位置在哪里

三.线与线的处理

    public SetComparisonResult Intersect(Curve curve);
    public SetComparisonResult Intersect(Curve curve, out IntersectionResultArray resultArray);
第一个函数直接给出两条曲线的相交情况;

第二个函数不仅判断其相交情况,还会给出交点的信息等,需要说明的是IntersectionResultArray是输出值,如果没有交点,会输出为NULL;

SetComparisonResult.Overlap,共面且相交。

SetComparisonResult.Subset,共线,且只有一个交点,即两条有边界直线共线且首尾相连。

SetComparisonResult.Superset,共线;注:使用前需将其中一条曲线MakeUnbound();

SetComparisonResult.Disjoint,无交点,可能是共面且平行,也可能是空间内不共面;

SetComparisonResult.Equal,两条直线有重合部分(只有一个交点的情况除外)。

posted @ 2021-06-09 18:45  小王子的博客  阅读(641)  评论(0编辑  收藏  举报