一个多段线lisp问题
大家好,我有一个列表,其中包含一条线上的相邻点对。我想测试每一对,如果它返回真值,则在同一位置用两对替换它们。不返回T的配对将单独留在其各自的位置。要使用的功能和使用方法是什么?。
我将非常感谢您的回复。
芦荟 至少我没有足够的信息,你能举个例子吗? 谢谢你的回复。
问题如下所示:
列表为((2.0 5.0)(5.0 4.5))((5.0 4.5)(6.2 7.9))((6.2 7.9)(10.4 11.3)((10.4 11.3)(15.0 17.5))……)。现在,假设我想分解线段((5.0 4.5)(6.2 7.9))并将其替换为两条线段,分别为((5.0 4.5)(5.8 6.0))和((5.8 6.0)(6.2 7.9)),因为前者满足某些条件。对pline中的每个段进行验证条件的试验;如果测试在任何一对上失败,则在同一位置保持不变。
我希望我已经把问题说清楚了。 对不起,首先这些坐标和笑脸混在一起了,另外我需要知道你到底在想什么,才能知道如何给出正确的答案。 试试这个;
(setq lst '(((2.0 5.0)(5.0 4.5))((5.0 4.5)(6.7 7.9))((6.7 7.9)(10.4 11.3))((10.4 11.3)(15.0 17.5)))
tstlst'((5.0 4.5)(6.7 7.9))
nwpnt '(5.8 6.0)
)
(foreach xlst lst
(if (equal xlst tstlst)
(setq lstl (append lstl (list(list (cartstlst) nwpnt)))
lstl (append lstl (list(list nwpnt(cadr tstlst))))
)
(setq lstl (append lstl (list xlst)))
)
)
谢谢Snownut,这正是我在解决上述问题时想要做的。在将两条线段插入列表“lst”(如lstl中)之前,我还想检查点“nwpnt”是否在包含线段“tstlst”作为直径的圆内。
当做
芦荟 对不起,塔瓦。
我不知道这些笑脸是怎么进来的。我把它们删掉了。但不知怎的,他们又出现了。看来斯诺努特没有问题。我的目标是几个月前我在这个网站上发布的三角测量。有人建议我是否知道珠穆朗玛峰有多高。所有所谓的免费套餐实际上都是有条件收费的。然而,这是我的爱好。
当做
芦荟 您可以在发布点列表时禁用表情,方法是转到“高级”,然后选中选项“禁用文字中的表情”旁边的框 微笑就在那里,我只是在他们的位置插入了一个替换号,不管替换号是否正确,只要他们是一样的。
正如塔尔沃特解释的那样,请禁用笑脸,这会使您的示例更容易理解。(此外,这不是一个社交网站,微笑是真正必要的…) 通过测试您的最后一篇文章,不需要tstlst,请参阅下面的修订代码;(不确定这将如何处理降序列表)
(setq lst '(((2.0 5.0)(5.0 4.5))((5.0 4.5)(6.7 7.9))((6.7 7.9)(10.4 11.3))((10.4 11.3)(15.0 17.5)))
nwpnt '(5.8 6.0)
)
(foreach xlst lst
(if (or (< (car(car xlst))(carnwpnt)(car(cadr xlst)))
(< (cadr (car xlst))(cadr nwpnt)(cadr (cadr xlst)))
);or
(setq lstl (append lstl (list(list (carxlst) nwpnt)))
lstl (append lstl (list(list nwpnt(cadr xlst))))
)
(setq lstl (append lstl (list xlst)))
)
);foreach
页:
[1]
2