lsp版本找朋友算法-模仿net的算法
本帖最后由 liuhe 于 2024-8-10 08:59 编辑最近一直学习net的语言,研究到这个net的找朋友算法很有意思,把算法和朋友概念进行分离,只利用委托的传入的思想很有意思 ,
于是就写了一个lsp版本的找朋友算法。举例是常见,把直线进行首尾相连。效率么不好说,可能某些函数替换,可以增加效率,结果是正确的。
具体的实现原理,请去找找b站搜一搜。
因为算法和概念是分离的,传递进去什么类型的表,就输出什么类型表。
比如说,该算法和包围盒碰撞算法结合,就可以改造成分堆算法。
比如说,该算法和块统计相结合,就可以得出块的分类统计结果。
懂得自然明白我说的啥,不懂的还是请自行体会。
20240810更新
举例让大佬误会了,net的多线程之类高级用法,我还不会,谢谢大佬的指导。
我用这个lsp找朋友算法,写了一个统计相同块名的统计示例。
通过改变 (LH:FINDFRIENDS ENTS FUNC FUZZXFUZZY)func为lh:blockcount,就可以把程序变为统计块名。
(defun lh:blockcount (e1 e2 fuzzx fuzzy / name1 name2)
(setq name1 ( vla-get-EffectiveName(vlax-ename->vla-object e1))
name2 ( vla-get-EffectiveName(vlax-ename->vla-object e2))
)
(eq name1 name2)
)
写这个更多的是一种通用算法,只需要func就可以实现很多,首尾相连只是一种。
还可以结合成,统计不同面积的例子。
本帖最后由 你有种再说一遍 于 2024-8-10 04:38 编辑
没懂,写了个啥...
如果首尾相连,可以看看下面链接,以及我的评论
http://bbs.mjtd.com/thread-190866-1-1.html
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=190867&page=1#pid990734
.net学完流程一定要学优化,例如减少信息熵,多线程并行,锁粒度控制,你会发现可以把之前的东西推翻个七七八八,嘻嘻
没懂,
写了个啥...
说了个啥...
是说net的算法难用,慢吗?
lsp算法简单,快速吗?
演示图速度过快,不知道在做啥:D- 小菜123 发表于 2024-8-10 10:10
演示图速度过快,不知道在做啥
大佬只需要看代码,gif为了压缩没办法 gzcsun 发表于 2024-8-10 09:59
没懂,
写了个啥...
说了个啥...
写了lsp可以用的版本,只是移植而已。lsp我没看到这个算法 liuhe 发表于 2024-8-10 11:04
写了lsp可以用的版本,只是移植而已。lsp我没看到这个算法
我更想看看你的net学习有没有被别人带歪 你有种再说一遍 发表于 2024-8-10 11:13
我更想看看你的net学习有没有被别人带歪
大佬,我是以能用就行。你早上提醒了我多线程,我今天学习了一下,果然速度提高了,惊惊大佬牛逼 本帖最后由 你有种再说一遍 于 2024-8-10 19:04 编辑
liuhe 发表于 2024-8-10 15:16
大佬,我是以能用就行。你早上提醒了我多线程,我今天学习了一下,果然速度提高了,惊惊大佬牛逼
学多线程并行可以用Parallel.For,它内部缓存了一个线程池给你复用.
而且你得控制线程粒度,
一个文件分多个块每个块进行并行,
和每个文件分配一个线程,有本质的不同.
然后你想想,块表什么的,是不是也可以...
然后你就开始想把10w图元给优化到一秒内了
页:
[1]