明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1051|回复: 15

[提问] 【求助】智能移动线段

[复制链接]
发表于 2021-12-10 09:53:46 | 显示全部楼层 |阅读模式
本帖最后由 20060510412 于 2021-12-10 14:59 编辑

各位好,我想把图中的黄色线段自动移动到绿色线段位置,原则就是黄线不能越过红线。
目前没啥思路,请教各位大佬,望不吝赐教。
另外:图中的红色曲线仅仅为示意,曲线可以为任意形状。

笨办法只能得到一个粗略的结果,不是精确解。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2021-12-10 11:13:14 | 显示全部楼层
表述不大清楚,意思是黄线往绿线方向移动,但是要跟曲线有交点?如果不对曲线有约束,可能会无解,比如W形状的曲线,就可能超过绿线,但是跟W的外侧还有交点。
如果不要求理论上的解,用楼上的算法可行,也不用每次移0.001,采用减半测试,先测试100,无交点就测试减半50,这样就知道在是0-50还是50-100之间了。N次可以测试2^N个数值。效率可以提高很多。
 楼主| 发表于 2021-12-13 17:19:28 | 显示全部楼层
guosheyang 发表于 2021-12-12 15:58
http://bbs.mjtd.com/forum.php?mod=attachment&aid=MTE3MTU4fDZkZDM5ZTMxYzNhOTc1MWE3ZTI2YTZiZjA3MmQyNGIyfDE3MzE2MDczMjM%3D&request=yes&_f=.gif 这个样子的效果可以做到

请问,支持任意曲线么
 楼主| 发表于 2021-12-10 11:02:43 | 显示全部楼层

我把1楼的图片更新了一下
两种情况都要能保证才行。
我目前的思路:将黄线一次移动0.001,移动一次判断黄线是否与红线相交,当不相交时,即为合理位置。
这种方法比较粗暴,而且可能很慢。
发表于 2021-12-10 10:05:02 | 显示全部楼层
第一步,找到过黄线端点的垂线;
第二步,找到这条垂线与红线的交点;
第三步,移动
 楼主| 发表于 2021-12-10 10:11:52 | 显示全部楼层
gaics 发表于 2021-12-10 10:05
第一步,找到过黄线端点的垂线;
第二步,找到这条垂线与红线的交点;
第三步,移动

这个曲线仅仅是示意,曲线本身可以是任意曲线,例如向另一个方向凸起。
此时如果仅仅通过端点来控制,应该是不行的。
发表于 2021-12-10 10:18:23 | 显示全部楼层
20060510412 发表于 2021-12-10 10:11
这个曲线仅仅是示意,曲线本身可以是任意曲线,例如向另一个方向凸起。
此时如果仅仅通过端点来控制,应 ...

黄色的不是线段吗?最终效果不是黄色两端点落在红色曲线上?
 楼主| 发表于 2021-12-10 10:19:08 | 显示全部楼层
本帖最后由 20060510412 于 2021-12-10 11:03 编辑
gaics 发表于 2021-12-10 10:18
黄色的不是线段吗?

黄色的是线段,但是红色曲线是可以任意变化的。
均要保证黄色线段不能越过红色曲线。例如下面这种情况,通过端点来判断,貌似不行吧。

发表于 2021-12-10 10:26:39 | 显示全部楼层
20060510412 发表于 2021-12-10 10:19
黄色的是线段,但是红色曲线是可以任意变化的。
均要保证黄色线段不能越过红色曲线。例如下面这种情况, ...

图片刷不出来
 楼主| 发表于 2021-12-10 12:39:37 | 显示全部楼层
mikewolf2k 发表于 2021-12-10 11:13
表述不大清楚,意思是黄线往绿线方向移动,但是要跟曲线有交点?如果不对曲线有约束,可能会无解,比如W形 ...

唯一的原则:黄线上的所有点,都应该在红色曲线的同侧。
发表于 2021-12-10 13:45:31 | 显示全部楼层
20060510412 发表于 2021-12-10 12:39
唯一的原则:黄线上的所有点,都应该在红色曲线的同侧。

如果红色曲线是个圆怎么办?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-15 02:02 , Processed in 0.281853 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表