明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3203|回复: 18

■ 关于lisp第四期出题的一点建议

  [复制链接]
发表于 2012-1-7 18:41 | 显示全部楼层 |阅读模式
本帖最后由 狂刀lxx 于 2012-1-7 19:39 编辑

建议第4期出题考虑部分与实际工作相结合的题目。

一、恢复炸散的块
http://bbs.mjtd.com/thread-91653-1-1.html[公告] 求线组合成块(采用格式刷那种样子)
我觉得这个题目有一定的难度,也和实际工作相关(处理被炸开的图),可以作为备选的题目。

二、自动搜索
另外,我再提一个题目。其实里面又分为两个小题目
题目一:虽然连接多义线的程序有很多,但是本题目关键点不在于连接,而是在于选取,如下图:
因为是地形图,有很多线条错综复杂,要求从中挑出水系的线条复制并改层(改色)进行闭合处理,最后生成可以填充的闭合区域。
错综复杂是指:边界有可能是首尾相连,也可能是有一个断口(断口的周围可能有比该断口更近的无关线条,要求对多分枝情况进行人工判断,判断的时候因为是地形图很大,要求能够局部放大并移屏,当用户做出选择后,再继续自动执行搜索,直到闭合或找到下一个断口)
所选的边界有可能是完整的多义线,也可能是某个地块边界的一截(可能有多段),边界连接的情况也可能是一个曲线的端点对着另外一个曲线的中部,要求将两者连接起来。
题目一要求的是自动搜索功能。即收尾相连部分自动判断,只在断口或不确定情况下要求用户进行人工选择,选择后继续自动搜索。

题目二:自动搜索图面中围合区域内含有“塘”字(该字要求能自定义)的曲线,该围合区域可能是一条完整的闭合曲线,也可能是有断口的2~4条曲线构成。找出符合要求的曲线后复制改层(改色),如果不闭合的自动闭合。



三、题目:网络加密
现有一程序提供给用户,程序要求读取网上数据文件(已经加密,可以是ftp的文件),才可得出正确结果。

网上数据文件不定期更新。用户只有拿到软件发行者不定期提供的密钥,才可将加密数据还原。
题目是:设计符合如上机制的程序。并要求不能通过对数据文件和密钥对比,推导出加密方法。

以上题目不是一般的难度,望能考虑加入到下一期测试题中。




该贴已经同步到 狂刀lxx的微博





本帖子中包含更多资源

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

x

点评

我有一个问题困扰已久!如何生成自定义格式文件如格式为test.12a,要求UE打开也乱码(二进制、十六进制无所谓),同时自己的程序还能对此文件格式进行读写,希望借此机会能有高手解惑一二!  发表于 2012-5-28 09:38
自动搜索封闭区域,有断口的还要做人工干预处理,这个难度比较大,实际上就是拓扑多边形,用Lisp程序实现起来,对于一张复杂的地形图来说,实现的效率是个很大的问题!  发表于 2012-1-9 12:18
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2012-1-7 18:47 | 显示全部楼层
本帖最后由 狂刀lxx 于 2012-1-8 13:29 编辑

“所选的边界有可能是完整的多样线”应为“所选的边界有可能是完整的曲线”。题目一要求的是自动搜索功能。即收尾相连部分自动判断,只在断口或不确定情况下要求用户进行人工选择,选择后继续自动搜索。
点评说笑了,如果确实难度太大,可以作为下一期的加分题,不作为必答题。

今天抽空,开始考虑第一题目 2012.1.7

点评

这不叫考试,叫奥林匹克竞赛  发表于 2012-1-7 18:51
发表于 2012-1-7 19:59 | 显示全部楼层
顶,个人建议弄些智能化的,比如几个CAD命令用一个命令解决
发表于 2012-1-7 21:14 | 显示全部楼层
明经LISP奥德赛
发表于 2012-1-8 00:11 | 显示全部楼层
赞同考虑与实际工作相结合的题目,这样参与的人会多些...
 楼主| 发表于 2012-1-10 02:38 | 显示全部楼层
本帖最后由 狂刀lxx 于 2012-1-10 02:38 编辑

先给大家加点料

本帖子中包含更多资源

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

x
发表于 2012-1-10 10:52 | 显示全部楼层
顶!支持
发表于 2012-1-10 11:29 | 显示全部楼层
很强大  期待中
发表于 2012-1-10 21:39 | 显示全部楼层
本帖最后由 caoyin 于 2012-1-10 21:40 编辑
狂刀lxx 发表于 2012-1-10 02:38
先给大家加点料


刀兄好,的确很强很暴力,不知是怎么实现的,故凉粉有如下疑问:
1.对于分解的不等比块是否有效?
2.是否支持任意对象的子图元?
3.不知速度如何,即对于超大的图形和复杂的块的意义如何?
-------------------------------------------------------------------------------
算法猜测:
1.构建一个块的4x4矩阵A,遍历块定义(BLOCK),获取子对象类型、点等数据。
2.ssget之后遍历选集,当对象类型相符,将每个对象和矩阵A模拟换算生成新的4x4矩阵,且忽略掉角度、比例的因素进行对比,矩阵相同的既构成一个块(insert)。
 楼主| 发表于 2012-1-11 01:27 | 显示全部楼层
本帖最后由 狂刀lxx 于 2012-1-11 01:42 编辑

回caoyin:
这几天比较忙,抽空写的,还在完善调试。
1、对不等比块无效,因为不等比块炸开后实体发生改变(如圆变椭圆)或1个变多个(如spline可能被近似拟合),不具有较强的操作性,理论上可行,但是加大程序复杂性,降低效率,出错机会多。
2. 应该支持,还未测试。
3、用了矩阵变换,且通过程序结构和过滤等手段,速度还行,具体待测试。
算法:
本程序和遍历块定义无关,即:任意组合的实体(我叫做簇),只要相似(即通过移动,旋转,镜像,缩放变换的,可组合),即可过滤锁定,不论这个簇是否原先是用块炸开而成的。
大致思路:
1.最难的部分是如何找到一个方法来表达簇内实体相互之间的关系,先选参照簇,根据参照簇提取相互关系的特性(如相互之间长度比例,相互之间夹角等),注意是相互特性,而不是单个实体的特性。如果方法科学,可以加快判别的速度。
2.在搜索选集中搜索,找到与簇类似的簇。通过对参照簇进行矩阵变换进行测试,进一步判别是否“外形”和相互关系完全吻合。并记录有效的变换矩阵。
3.用参照簇的实体生成块定义(块名可以自定义或默认用系统时间,插入点自定义)。
4。根据第2步的有效变换矩阵用块实例替换图上实体。即完成。
因此虽然叫做 reblk,其实即使原先不是blk变化并炸开而成的也没有关系,只要类似,即可。这样才能处理那些已经被炸开,并清理了块定义且存盘的文件。

2.再看了一遍你说的算法,其实是差不多,应该也行,和我的次序有点不同而已,你是考虑先做块在验证,我是先验证再做块。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-5 08:02 , Processed in 0.440093 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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