请问要怎么处理这个坐标,我要给定的距离,不足就不分了
(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
你是想每两个节点之间 定距等分? 不是整除的话最后肯定会有剩余的
哥 我很好奇为什么你的最后登录时间是1970-1-1 飞雪神光 发表于 2024-1-6 15:24
你是想每两个节点之间 定距等分? 不是整除的话最后肯定会有剩余的
每段多出来的扔了不要。公式要怎么改。 love1030312 发表于 2024-1-6 16:51
哥 我很好奇为什么你的最后登录时间是1970-1-1
这我也不知道 我看有一部分人就是这样的 本帖最后由 飞雪神光 于 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)) ; 移除已处理的坐标
) 飞雪神光 发表于 2024-1-6 18:37
谢谢,可以用。
页:
[1]