等你 17:51:04
请教这样用command调用line画一个图层为0,颜色为红色的直线。
等你 17:51:52
请高人指点
[vormittag]桔子 17:52:03
[vormittag]桔子 17:59:15
(setq cecolor (getvar "CECOLOR"))
(setq clayer (getvar "CLAYER"))
(setvar "CECOLOR" "1")
(setvar "CLAYER" "0")
(command "LINE" (getpoint) (getpoint) "")
(setvar "CECOLOR" cecolor)
(setvar "CLAYER" clayer)
我是有多无聊啊。
(420552)浪子 18:01:13
啥意思!
没事写着玩呀!
[仲文玉][仲文玉]wygjx 18:03:10
桔子是写给他的--> 等你(359468099)
[woshilxh]爱摄影 18:03:37
昨天给寂寞标尺寸那兄弟才真寂寞
等你 18:03:55
是吗,不胜荣幸
[还没想好]辰祺 18:12:57
求教:怎么把列表的第一个元素移动至列表末尾?
比如((1.0 2.0 3.0) (4.0 5.0 6.0) (7.0 8.0 9.0))
执行完毕后成为
((4.0 5.0 6.0) (7.0 8.0 9.0) (1.0 2.0 3.0))
[vormittag]桔子 18:18:35
(reverse (cons (car lst) (reverse (cdr lst))))
巴黎铁塔翻过来掉过去。
[还没想好]辰祺 18:19:13
[还没想好]辰祺 18:19:51
我想了半天 (setq old_list (append (cdr old_list) (cons (car old_list) nil)))
不知道两个执行效率差多少。。
[vormittag]桔子 18:20:49
append 肯定慢
[caoyin][caoyin] 18:20:51
应该你的快
[lisp-study]jun 18:20:56
(append (cdr lst) (list (car lst)))
[caoyin][caoyin] 18:20:59
[还没想好]辰祺 18:21:20
我也是边看书边翻到的函数。。
[caoyin][caoyin] 18:21:22
reverse 也很慢
[lisp-study]jun 18:21:27
append 很慢呀?
[caoyin][caoyin] 18:23:20
直接
(list (cadr LST)
(last LST)
(car LST)
)
[lisp-study]jun 18:23:42
多了呢
[woshilxh]爱摄影 18:23:52
repeat
[vormittag]桔子 18:24:24
[caoyin][caoyin] 18:26:11
,看似简单的问题
[woshilxh]爱摄影 18:27:29
我写程序是新手,一般需要什么功能了,都是根据功能现查帮助文件找函数,此时此刻,我连rtos,atof都记不住谁转换谁,
[vormittag]桔子 18:28:02
real to string atom to float
[woshilxh]爱摄影 18:28:12
另外,就是觉得养成写子程序的习惯挺好,
:)
[vormittag]桔子 18:28:21
函数名又不是随便起的。
[lisp-study]jun 18:28:58
@[caoyin] 请教个问题
我想沿某一个方向搜索直线 有没有好的思路
[还没想好]辰祺 18:29:15
是的,一个灰常牛叉,执行效率高的子程序,就是一个牛叉的函数。。
[lisp-study]jun 18:31:39
[qqimg]oldimg/{FA095DC2-1D0F-4BB8-1715-450C1210AFF5}.jpg[/qqimg]
[caoyin][caoyin] 18:32:09
共线?
[lisp-study]jun 18:32:45
差不多 就这个意思
是画一个射线然后判断么
[caoyin][caoyin] 18:34:06
你先要说清楚:
给的条件是什么,求的结果是什么,具体到实际的例子
[lisp-study]jun 18:35:29
条件是很多直线 目的是把这些直线按共线分类
[woshilxh]爱摄影 18:36:19
思路应该是这个吧:搜索过相同点的斜率相同的直线
[woshilxh]爱摄影 18:36:52
然后把搜索过的剔除,继续搜索剩下的
[lisp-study]jun 18:36:57
不过相同点
[woshilxh]爱摄影 18:37:27
那就算出来斜率,归并就行了
[lisp-study]jun 18:37:48
我也是这么想的 但是当线很多的时候 这个开消比较大
不仅仅是斜率问题 还有共线
[woshilxh]爱摄影 18:38:34
我觉得一旦涉及到逐一循环,开销都不小。
[woshilxh]爱摄影 18:39:06
关键是找到一批后就不再重复搜索了,后面速度会越来越快
[lisp-study]jun 18:40:50
还是比较慢 所以想问问有没有更好的思路
[woshilxh]爱摄影 18:42:14
那只能在算法上优化了吧,
[vormittag]桔子 18:43:11
[qqimg]oldimg/{5E45165C-7159-C4D3-3713-4314F6AD7CBF}.jpg[/qqimg]这是两个问题么?
[lisp-study]jun 18:44:21
[qqimg]oldimg/{1252C450-5D6D-54E8-35F0-14D9E01FEABD}.jpg[/qqimg]这样的不就是两个问题么
[woshilxh]爱摄影 18:44:24
对啊,我也纳闷,
是想把这两条线放在一类么?
[lisp-study]jun 18:44:58
分开
[lisp-study]jun 18:45:33
[qqimg]oldimg/{41044189-897B-06E0-D350-573410C3A182}.jpg[/qqimg]
这个意思
[vormittag]桔子 18:46:06
作个坐标转换,这就是三个点。
[lisp-study]jun 18:48:29
这个是个好思路
[caoyin][caoyin] 18:51:00
在直线的任一点做垂线,垂足点为Pt,然后用inters 函数判断其他直线和垂线的交点是否相同
[qqimg]oldimg/{4A95807F-75E4-22ED-3E01-CE4ACD9ABF48}.jpg[/qqimg]
[lisp-study]jun 18:51:30
这个主意好
[caoyin][caoyin] 18:52:05
inters 的效率不高,因此先用角度判断排除
[lisp-study]jun 18:52:24
嗯
[caoyin][caoyin] 18:52:44
(and 角度判断
交点判断
)
[lisp-study]jun 18:53:19
谢谢 谢谢 交点这个很好
[caoyin][caoyin] 18:54:12
改进一下:
不用交点法
[lisp-study]jun 18:54:31
...
[woshilxh]爱摄影 18:54:33
这,思路挺不错,省了代码,不过计算量上应该是把外置的放在内置了吧,应该计算量上差不多吧
[lisp-study]jun 18:55:09
直接判断四个点的角度行不?
[caoyin][caoyin] 18:55:42
判断直线的两个点(angle pt p1)(angle pt  2)角度是否相同或相差180度
angle效率高很多的
[lisp-study]jun 18:56:02
对 就是这个
用另一条直线的一个点
非常感谢
[caoyin][caoyin] 18:57:06
不客气
[vormittag]桔子 18:57:06
angle 对空间直线会出问题的,只求当前ucs下xy平面的角度。
[lisp-study]jun 18:57:43
不要空间直线 只操作二维的 |