wanchr 发表于 2024-1-6 11:11:55

请问要怎么处理这个坐标,我要给定的距离,不足就不分了

(setq vertices '()) ; 创建一个空列表用于存储顶点坐标
(foreach item polyline-info
    (if (= (car item) 10) ; 检查是否为顶点坐标
      (setq vertices (cons (cdr item) vertices)) ; 将顶点坐标添加到列表中
    )
)
(setq divs '()) ; 创建一个空列表用于存储等分后的坐标
(setq given-distance 1000.0) ; 给定的距离
(repeat (1- (length vertices))
    (setq pt1 (nth 0 vertices)) ; 第一个坐标
    (setq pt2 (nth 1 vertices)) ; 第二个坐标
    (setq len (distance pt1 pt2)) ; 计算两点之间的长度
    (setq segment-count (1+ (fix (/ len given-distance)))) ; 计算线段的等分数量
    (setq dx (/ (- (car pt2) (car pt1)) segment-count)) ; X 轴方向的增量
    (setq dy (/ (- (cadr pt2) (cadr pt1)) segment-count)) ; Y 轴方向的增量
    (repeat segment-count
      (setq divided-vertices (cons pt1 divided-vertices)) ; 将当前坐标添加到列表中
      (setq pt1 (list (+ (car pt1) dx) (+ (cadr pt1) dy))) ; 计算下一个坐标
    )
    (setq vertices (cdr vertices)) ; 移除已处理的坐标
)这段代码处理等分的时候,当不能整除会以近似距离等分,我想要定距等分要怎么处理,帮我改一下,谢谢。

飞雪神光 发表于 2024-1-6 15:24:38

你是想每两个节点之间 定距等分? 不是整除的话最后肯定会有剩余的

love1030312 发表于 2024-1-6 16:51:34

飞雪神光 发表于 2024-1-6 15:24
你是想每两个节点之间 定距等分? 不是整除的话最后肯定会有剩余的

哥 我很好奇为什么你的最后登录时间是1970-1-1

wanchr 发表于 2024-1-6 18:17:45

飞雪神光 发表于 2024-1-6 15:24
你是想每两个节点之间 定距等分? 不是整除的话最后肯定会有剩余的

每段多出来的扔了不要。公式要怎么改。

飞雪神光 发表于 2024-1-6 18:20:30

love1030312 发表于 2024-1-6 16:51
哥 我很好奇为什么你的最后登录时间是1970-1-1

这我也不知道 我看有一部分人就是这样的

飞雪神光 发表于 2024-1-6 18:37:25

本帖最后由 飞雪神光 于 2024-1-6 18:39 编辑

(setq divided-vertices '()) ; 创建一个空列表用于存储等分后的坐标
(setq given-distance 1000.0) ; 给定的距离
(repeat (1- (length vertices))
(setq pt1 (nth 0 vertices)) ; 第一个坐标
(setq pt2 (nth 1 vertices)) ; 第二个坐标
(setq len (distance pt1 pt2)) ; 计算两点之间的长度
(setq an (angle pt1 pt2)) ; 计算两点之间的长度
(setq segment given-distance)
(setq divided-vertices (cons pt1 divided-vertices)) ; 将当前坐标添加到列表中
(while (< segment len)
    (setq pt1 (polar pt1 an given-distance)) ; 计算下一个坐标
    (setq divided-vertices (cons pt1 divided-vertices)) ; 将当前坐标添加到列表中
    (setq segment (+ segment given-distance))
)
(setq vertices (cdr vertices)) ; 移除已处理的坐标
)

wanchr 发表于 2024-1-7 08:32:09

飞雪神光 发表于 2024-1-6 18:37


谢谢,可以用。
页: [1]
查看完整版本: 请问要怎么处理这个坐标,我要给定的距离,不足就不分了