本帖最后由 lee50310 于 2022-9-1 02:18 编辑
介紹一款來自國外論壇 可產生精美的 16種 分形樹
tree.lsp 產生 7種 執行指令:tree 後輸入號碼 在螢幕點選插入點
tree2.lsp 產生10種 執行指令:tree2 後輸入號碼 在螢幕點選插入點
分形樹是由公式+參數值產生
此為 tree2的部分程式碼 (參數部分)
- ;;;get tree pattern;;
- (defun getpattern (/ kword pattern pattern1)
- (initget "1 2 3 4 5 6 7 8 9 10")
- (setq kword (getkword "\n please select the tree type: 1/2/3/4/5/6/7/8/9/10:"))
- (cond
- ((= kword "1")
- (setq res (list (list 0.5 0.0 0.0 0.5 0.0 0.0 0.333)
- (list 0.5 0.0 0.0 0.5 0.5 0.0 0.333)
- (list 0.5 0.0 0.0 0.5 0.25 0.5 0.334)
- )
- )
- )
- ((= kword "2")
- (setq res (list (list 0.5 -0.5 0.5 0.5 0.0 0.0 0.5)
- (list 0.5 0.5 -0.5 0.5 0.5 0.5 0.5)
- )
- )
- )
- ((= kword "3")
- (setq res (list (list -0.04 0 -0.19 -0.47 -0.12 0.3 0.25)
- (list 0.65 0.0 0.0 0.56 0.06 1.56 0.25)
- (list 0.41 0.46 -0.39 0.61 0.46 0.4 0.25)
- (list 0.52 -0.35 0.25 0.74 -0.48 0.38 0.25)
- )
- )
- )
- ((= kword "4")
- (setq res (list (list 0.6 0 0 0.6 0.18 0.36 0.25)
- (list 0.6 0 0 0.6 0.18 0.120 0.25)
- (list 0.4 0.3 -0.3 0.4 0.27 0.36 0.25)
- (list 0.4 -0.3 0.3 0.4 0.27 0.09 0.25)
- )
- )
- )
- ((= kword "5")
- (setq res (list
- (list 0.787879 -0.424242 0.242424 0.859848 1.758647 1.408065 0.9)
- (list -0.121212 0.257576 0.05303 0.05303 -6.721654 1.377236 0.05)
- (list 0.181818 -0.136364 0.090909 0.181818 6.086107 1.568035 0.05)
- )
- )
- )
- ((= kword "6")
- (setq res (list
- (list 0.745455 -0.45901 0.406061 0.887121 1.460279 0.691072 0.912675)
- (list -0.424242 -0.065152 -0.175758 -0.218182 3.809567 6.741476 0.087325)
- )
- )
- )
- ((= kword "7")
- (setq res (list (list 0 0 0 0.25 0 -0.14 0.02)
- (list 0.85 0.02 -0.02 0.83 0 1 0.84)
- (list 0.09 -0.28 0.3 0.11 0 0.6 0.07)
- (list -0.09 0.25 0.3 0.09 0 0.7 0.07)
- )
- )
- )
- ((= kword "8")
- (setq res (list (list 0.05 0 0 0.6 0 0 0.1)
- (list 0.05 0 0 -0.5 0 1.0 0.1)
- (list 0.46 0.32 -0.386 0.383 0 0.6 0.2)
- (list 0.47 -0.154 0.171 0.423 0 1.0 0.2)
- (list 0.43 0.275 -0.26 0.476 0 1.0 0.2)
- (list 0.421 -0.357 0.354 0.307 0 0.7 0.2)
- )
- )
- )
- ((= kword "9")
- (setq res (list (list 0 0 0 0.16 0 0 0.01)
- (list 0.85 0.04 -0.04 0.85 0 1.6 0.85)
- (list 0.2 -0.26 0.23 0.22 0 1.6 0.07)
- (list -0.15 0.28 0.26 0.24 0 0.44 0.07)
- )
- )
- )
- ((= kword "10")
- (setq res (list (list 0.8 0.0 0.0 -0.8 0.0 0.0 0.5)
- (list 0.4 -0.2 0.2 0.4 1.1 0.0 0.5)
- )
- )
- )
- )
- res
- )
- ;;xoutside function to entmake line
|