如题,现在开发遇到一个困难。 我绘制了两个UIBezierPath绘制的不规则图形。然后用线把它们连起来。 现在只能完成两个矩形之间的连线,取到连线与矩形的交点。 从网上搜了很多种方法,也使用了CGPathApply获取所有点来判断,但是如果取线段上的点,图形比较大的时候点有4000个,对比起来效率跟不上。 求大神给点指示
还有比如我需要拖动一个VIEW在一个UIBezierPath上运动,不是做动画,类似于磁贴那种,手指滑到哪边,view在path上移动到相对应位置,这个现在只想到取出点以后查找对应的坐标,还有更好的方法么?
不用全周长吧?我大致想了一下,你参考一下是否对:
图形A和B
你应该能取到axMax、axMin、ayMax、ayMin和bxMax、bxMin、byMax、byMin这些值吧,如果取不到就别往下看了。
通过这8个值可以判断出A和B之间的位置关系
switch(位置关系) {
case A靠左上:
在A上,取ayMax对应外沿点为起点,axMax对应外沿点为终点
在B上,取byMin对应外沿点为起点,bxMin对应外沿点为终点
确定了外沿点的起止范围,不管你的步长是1还是多长,自己可以想个算法再少算一些了吧?
break
case A靠左比B宽在上: // axMax >= bxMax && ayMax < byMax
自己脑补
break
其余自己脑补吧
}
我想这算法不一定好,就是随便那么一想,你可以参考参考,或是再多找找相关的算法。