liuhe 发表于 2024-8-10 00:14:43

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:19:35

本帖最后由 你有种再说一遍 于 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学完流程一定要学优化,例如减少信息熵,多线程并行,锁粒度控制,你会发现可以把之前的东西推翻个七七八八,嘻嘻

gzcsun 发表于 2024-8-10 09:59:19

没懂,
写了个啥...
说了个啥...
是说net的算法难用,慢吗?
lsp算法简单,快速吗?

小菜123 发表于 2024-8-10 10:10:10

演示图速度过快,不知道在做啥:D-

liuhe 发表于 2024-8-10 11:03:09

小菜123 发表于 2024-8-10 10:10
演示图速度过快,不知道在做啥

大佬只需要看代码,gif为了压缩没办法

liuhe 发表于 2024-8-10 11:04:22

gzcsun 发表于 2024-8-10 09:59
没懂,
写了个啥...
说了个啥...


写了lsp可以用的版本,只是移植而已。lsp我没看到这个算法

你有种再说一遍 发表于 2024-8-10 11:13:32

liuhe 发表于 2024-8-10 11:04
写了lsp可以用的版本,只是移植而已。lsp我没看到这个算法

我更想看看你的net学习有没有被别人带歪

liuhe 发表于 2024-8-10 15:16:17

你有种再说一遍 发表于 2024-8-10 11:13
我更想看看你的net学习有没有被别人带歪

大佬,我是以能用就行。你早上提醒了我多线程,我今天学习了一下,果然速度提高了,惊惊大佬牛逼

你有种再说一遍 发表于 2024-8-10 19:00:34

本帖最后由 你有种再说一遍 于 2024-8-10 19:04 编辑

liuhe 发表于 2024-8-10 15:16
大佬,我是以能用就行。你早上提醒了我多线程,我今天学习了一下,果然速度提高了,惊惊大佬牛逼
学多线程并行可以用Parallel.For,它内部缓存了一个线程池给你复用.
而且你得控制线程粒度,
一个文件分多个块每个块进行并行,
和每个文件分配一个线程,有本质的不同.
然后你想想,块表什么的,是不是也可以...
然后你就开始想把10w图元给优化到一秒内了
页: [1]
查看完整版本: lsp版本找朋友算法-模仿net的算法