这是我上一篇文章here的后续文章
以下代码(ref)可用于在给定图形的坐标、节点和边的情况下生成2D图。
(defun graph ( pts sls tls wgt )
( (lambda ( l )
(foreach x l (text (cdr x) (itoa (car x)) 0.0 1))
(mapcar
'(lambda ( a b c / p q r )
(setq p (cdr (assoc a l))
q (cdr (assoc b l))
r (angle p q)
)
(entmake (list '(0 . "LINE") (cons 10 p) (cons 11 q) '(62 . 8)))
(text
(mapcar '(lambda ( x y ) (/ (+ x y) 2.0)) p q)
(itoa c)
(if (and (< (* pi 0.5) r) (<= r (* pi 1.5))) (+ r pi) r)
2
)
)
sls tls wgt
)
)
(mapcar 'cons (vl-sort (append sls tls) '<) pts)
)
)
(defun text ( p s a c )
(entmake
(list
'(0 . "TEXT")
(cons 10 p)
(cons 11 p)
(cons 50 a)
(cons 01 s)
(cons 62 c)
'(40 . 2)
'(72 . 1)
'(73 . 2)
)
)
)输入:
(graph
'((75 25) (115 45) (90 60) (10 5) (45 0) (45 55) (0 25))
'( 1 1 1 1 2 2 3 4 4 5 6)
'( 2 3 4 5 3 6 6 5 7 7 7)
'(50 10 20 80 90 90 30 20 100 40 60)
)我想请教一下,当节点的3D坐标可用时,如何修改上面的代码来绘制3D图。
(graph
'((75 25 0) (115 45 24) (90 60 21) (10 5 4) (45 0 1) (45 55 23) (0 25 123))
'( 1 1 1 1 2 2 3 4 4 5 6)
'( 2 3 4 5 3 6 6 5 7 7 7)
'(50 10 20 80 90 90 30 20 100 40 60)
)发布于 2020-07-22 04:32:48
在我的代码中,没有任何东西本质上限制在2D环境中-为函数提供3D坐标应该会生成3D图形,尽管文本标签将平行于WCS平面,因为文本是平面对象。
以下内容是使用示例坐标生成的:

https://stackoverflow.com/questions/62983685
复制相似问题