明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1101|回复: 2

[讨论] 有没有更快的办法?

[复制链接]
发表于 2014-5-28 11:21:02 | 显示全部楼层 |阅读模式
本帖最后由 yshf 于 2014-5-28 11:23 编辑

        有离散点集ptb=((x1 y1 h1) (x2 y2 h2) (x3 y3 h3) …… (xn yn hn)),组成了m个三角形sjw=
      ((N11 N12 N13) (N21 N22 N23) … …(Nm1 Nm2 Nm3)),其中的N11、N12、 N13等表示一个三角形三个点
       在点集ptb中的序号(从1开始),为了提取其相应的坐标绘制三角形,采用以下程序效率较低,请问各位高手有没有
       更快的办法?
           (setq sjwzb (mapcar '(lambda(x)(mapcar '(lambda(y)(nth (1- y) ptb)) x)) sjw))
       测试文件详见“测试坐标数据”及“三角形编号数据”

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2014-5-28 11:40:24 | 显示全部楼层
本帖最后由 llsheng_73 于 2014-5-28 11:41 编辑

好象没有更好的办法,不过没必要把所有三角网坐标得到后再开始画,可以读出一个三角网数据后马上得到它的坐标画一个,反正最后也是一个个的画嘛
至于快慢的问题,如果用ENTMAKEX画会比用COMMAND调用命令来画要快很多,不知道你是用什么来画的

另外没必要进行1-,可以先在ptb前边随便加一个没用的数据比如(setq ptb(cons nil ptb)),这样会减少很多次1-
 楼主| 发表于 2014-5-28 16:24:26 | 显示全部楼层
l谢谢lsheng_73 的回复。
因为sjw中点的序号是从1开始,而在ptb中点的序号是从0开开始,故要1-。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 04:47 , Processed in 0.204611 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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