C# 中 判断指定2条线是否相交、重合等功能

文章详细描述了一个C#方法,用于确定两条线段在二维空间中的位置关系,包括是否相交、重合或平行,并提供了计算交点的逻辑。主要涉及点和线段的表示、比较和几何运算。

调用代码:

  var line1Start = new System.Windows.Point(line4.Syjd_X_BasicGeometry, line4.Syjd_Y_BasicGeometry);
                                    var line1End = new System.Windows.Point(line4.Xyjd_X_BasicGeometry, line4.Xyjd_Y_BasicGeometry);
                                    var line2Start = new System.Windows.Point(item.Syjd_X_BasicGeometry, item.Syjd_Y_BasicGeometry);
                                    var line2End = new System.Windows.Point(item.Xyjd_X_BasicGeometry, item.Xyjd_Y_BasicGeometry);

                                    System.Windows.Point point = new System.Windows.Point();
                                    int intA = Intersection(line1Start, line1End, line2Start, line2End, ref point);
                                    if (intA == 1 || intA == 2 || intA == 4 || intA == 5 || intA == 6)
                                    {
                                        
                                    }

对应方法:


        public bool Equal(double f1, double f2)
        {
            return (Math.Abs(f1 - f2) < 1e-10);
        }

        public bool Equal(double f1, int f2)
        {
            return (Math.Abs(f1 - f2) == 0f);
        }
        /// <summary>
        /// 比较两点坐标大小,先比较x坐标,若相同则比较y坐标
        /// </summary>
        /// <param name="p1"></param>
        /// <param name="p2"></param>
        /// <returns></returns>
        public bool Dayu(System.Windows.Point p1, System.Windows.Point p2)
        {
            return (p1.X > p2.X || (Equal(p1.X, p2.X) && p1.Y > p2.Y));
        }
        /// <summary>
        /// 判断两点是否相等
        /// </summary>
        /// <param name="p1"></param>
        /// <param name="p2"></param>
        /// <returns></returns&

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pandi18

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值