【求助】智能移动线段
本帖最后由 20060510412 于 2021-12-10 14:59 编辑各位好,我想把图中的黄色线段自动移动到绿色线段位置,原则就是黄线不能越过红线。
目前没啥思路,请教各位大佬,望不吝赐教。
另外:图中的红色曲线仅仅为示意,曲线可以为任意形状。
笨办法只能得到一个粗略的结果,不是精确解。
表述不大清楚,意思是黄线往绿线方向移动,但是要跟曲线有交点?如果不对曲线有约束,可能会无解,比如W形状的曲线,就可能超过绿线,但是跟W的外侧还有交点。
如果不要求理论上的解,用楼上的算法可行,也不用每次移0.001,采用减半测试,先测试100,无交点就测试减半50,这样就知道在是0-50还是50-100之间了。N次可以测试2^N个数值。效率可以提高很多。 guosheyang 发表于 2021-12-12 15:58
attach://117158.gif 这个样子的效果可以做到
请问,支持任意曲线么 gaics 发表于 2021-12-10 10:26
图片刷不出来
我把1楼的图片更新了一下
两种情况都要能保证才行。
我目前的思路:将黄线一次移动0.001,移动一次判断黄线是否与红线相交,当不相交时,即为合理位置。
这种方法比较粗暴,而且可能很慢。 第一步,找到过黄线端点的垂线;
第二步,找到这条垂线与红线的交点;
第三步,移动 gaics 发表于 2021-12-10 10:05
第一步,找到过黄线端点的垂线;
第二步,找到这条垂线与红线的交点;
第三步,移动
这个曲线仅仅是示意,曲线本身可以是任意曲线,例如向另一个方向凸起。
此时如果仅仅通过端点来控制,应该是不行的。 20060510412 发表于 2021-12-10 10:11
这个曲线仅仅是示意,曲线本身可以是任意曲线,例如向另一个方向凸起。
此时如果仅仅通过端点来控制,应 ...
黄色的不是线段吗?最终效果不是黄色两端点落在红色曲线上? 本帖最后由 20060510412 于 2021-12-10 11:03 编辑
gaics 发表于 2021-12-10 10:18
黄色的不是线段吗?
黄色的是线段,但是红色曲线是可以任意变化的。
均要保证黄色线段不能越过红色曲线。例如下面这种情况,通过端点来判断,貌似不行吧。
20060510412 发表于 2021-12-10 10:19
黄色的是线段,但是红色曲线是可以任意变化的。
均要保证黄色线段不能越过红色曲线。例如下面这种情况, ...
图片刷不出来 mikewolf2k 发表于 2021-12-10 11:13
表述不大清楚,意思是黄线往绿线方向移动,但是要跟曲线有交点?如果不对曲线有约束,可能会无解,比如W形 ...
唯一的原则:黄线上的所有点,都应该在红色曲线的同侧。 20060510412 发表于 2021-12-10 12:39
唯一的原则:黄线上的所有点,都应该在红色曲线的同侧。
如果红色曲线是个圆怎么办?
页:
[1]
2