明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: xiaolu1998

[LISP]关于排序的问题,清高手指点

  [复制链接]
 楼主| 发表于 2005-5-13 13:05:00 | 显示全部楼层
先对x坐标,然后对y和z
发表于 2005-5-13 14:25:00 | 显示全部楼层
.............................................

评分

参与人数 1金钱 -5 贡献 -1 激情 -2 收起 理由
meflying -5 -1 -2 【差评】灌水

查看全部评分

发表于 2005-5-13 19:57:00 | 显示全部楼层
我先吃饭,一会儿再给你写一个例子,但不知道是不你所要的
 楼主| 发表于 2005-5-13 20:12:00 | 显示全部楼层
就是从文件中读出坐标值,然后再按x,排序,再按y排序z 排序
发表于 2005-5-15 00:02:00 | 显示全部楼层
不好意思,昨晚有事没有时间写了,现在帖上

本帖子中包含更多资源

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

x
发表于 2005-5-15 00:37:00 | 显示全部楼层
排序写的太复杂了。秋风写过一个可参考


我自己的不知道贴过没有
发表于 2005-5-15 12:34:00 | 显示全部楼层
无痕发表于2005-5-15 0:37:00排序写的太复杂了。秋风写过一个可参考 我自己的不知道贴过没有
楼上的帖出来看看
 楼主| 发表于 2005-5-15 19:23:00 | 显示全部楼层
不胜感激
发表于 2005-5-15 20:57:00 | 显示全部楼层


  
转贴一个秋枫的点表按照xyz排序的程序
  1. Sort_and_Write_pList :见附件
  2. (defun Sort_and_Write_pList (fname plist / fp pt)
  3.    ;; sort plist first
  4.    (setq plist (vl-sort plist
  5.                  '(lambda (p1 p2)
  6.          (cond ((< (car p1) (car p2)) T)
  7.        ((and (= (car p1) (car p2))
  8.                    (< (cadr p1) (cadr p2))
  9.          )
  10.          T
  11.        )
  12.        ((and (= (car p1) (car p2))
  13.                    (= (cadr p1) (cadr p2))
  14.                    (< (caddr p1) (caddr p2))
  15.          )
  16.          T
  17.        )
  18.        (T nil)
  19.          )
  20.      )
  21.              )
  22.    )
发表于 2005-5-16 08:04:00 | 显示全部楼层
无痕发表于2005-5-15 20:57:00<TD style=\"FONT-SIZE: 9pt; LINE-HEIGH...
  1. 原来还有vl-sort这么一个函数,我原是不知道的,所以就用lisp编了一个,是一种通用的冒泡法的排序思路。我查阅了一下资料,vl-sort会删除重复项,但使用vl-sort-i可以保留重复项,要看程序想要实现什么样的功能。
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-28 03:30 , Processed in 0.188622 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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