iOS   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – 查找点靠近直线和直线端点之间大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

要查找该点是否在包含两个点的指定行上,请执行以下检查: -(Boolean)isOnLine:(Line*) line point:(CGPoint) point{ //If between two dots: if (((line.first.x <= point.x && point.x <= line.last.X)||(line.first.x >= point.x &&
要查找该点是否在包含两个点的指定行上,请执行以下检查:

-(Boolean)isOnLine:(Line*) line point:(CGPoint) point{
    //If between two dots:
    if (((line.first.x <= point.x && point.x <= line.last.X)||(line.first.x >= point.x && point.x >= line.last.X))&&((line.first.y<=point.y && point.y<= line.last.y)||(line.first.y>=point.y && point.y>=line.last.y)) ) {    
        //Calculate distance:
        double dist = (((doublE)point.y - line.first.y)) / (0.00001+((doublE)(point.x - line.first.X)))- ((doublE)(line.last.y - line.first.y)) / (0.00001+((doublE)(line.last.x - line.first.X)));
        NSLog(@"Dist to line: %f",fabs(dist));
        return fabs(dist) <0.5;
    }else
        return NO;  
    }
}

然而,不知何故,该功能不适用于垂直线.我的猜测是if子句在某种意义上是无效的.

解决方法

我没有仔细阅读你的代码,所以我不完全确定你在做什么,但是最简单的方法就是找到线的一端到点的距离,找到另一端的距离行到终点,然后添加这些距离并与行的长度进行比较.

就像是:

Boolean isOnLine(line,point) {
  var dist1 = dist(line.first,point)
  var dist2 = dist(line.last,point)
  return abs(line.length - (dist1 + dist2)) < .5
}

对于dist()函数,我猜测CoreGraphics提供了这个,但如果不是,它只是基本的三角函数.

大佬总结

以上是大佬教程为你收集整理的objective-c – 查找点靠近直线和直线端点之间全部内容,希望文章能够帮你解决objective-c – 查找点靠近直线和直线端点之间所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。