⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 juliadclok5.lsp

📁 关于分形的lisp程序.是曼氏分形和Julia分形的合集.
💻 LSP
字号:
;;;==========================
;;;用CAD画Julia或Mandelbrot的
;;;主程序,采用逃逸算法       
;;;highflybird 2007/03/05.KM.
;;;==========================
(prompt "\n请输入命令JL")
(defun C:JL (/ *APP colboj listL2 allkey alllst c0 c1 col0 col1 icol ID ok option j
	       R1 R2 R3 S1 L2 X0 X1 X2 Y0 Y1 Y2 J1 J2 J3 G1 C2 t0 IX1 IY1 IX2 IY2 del 
	       TX1 TY1 TX2 TY2 xx1 yy1 xx2 yy2 lxx lyy Dx1 Dy1 Dx2 Dy2 M1 M2 M3 M4)
  (vl-load-com)
  (setq *APP (vlax-get-acad-object))
  (setq	colObj (vla-getinterfaceobject *APP "AutoCAD.AcCmColor.16"))		 
  (setq	allkey (list "C2""R1""R3""S1""L1""L2""X0""X1""X2""Y0""Y1""Y2""J1""J2""J3""G1""M1""M2""M3""M4"))
  (setq	alllst (mapcar 'read allkey))
  (setq c0   (rnd 0 (* 256 256 256))                           ;颜色随机
	col0 (Number->RGB C0)                                  ;转化为RGB
	col1 (mapcar 'itoa col0)                               ;转化为字符串
	icol (rgb->index colObj col0)	                       ;转化为索引号
  )
  (setq j 0)
  (setq ok 2)    
  (setq ID (load_dialog "fractal5.dcl"))                       ;加载对话框
  (if (new_dialog "fractal" ID)                                ;如果成功
    (progn
      (setq IX1 (dimx_tile "I1"))                              ;图像1真实X尺寸
      (setq IY1 (dimy_tile "I1"))                              ;图像1真实Y尺寸
      (setq IX2 (dimx_tile "I2"))                              ;图像2真实X尺寸
      (setq IY2 (dimy_tile "I2"))                              ;图像2真实Y尺寸
      (setq listL2 (get_attr "L2" "list"))                     ;推荐值列表
      (setq listL2 (string->list listL2))
      (setq R1 "T2")                                           ;默认为JULIA
      (setq C2 "")                                             
      (default)                                                ;各默认值
      (newDCL)                                                
      (get_value)                                              ;取得各对话框值
      (while (> ok 1)                                      
        (setq ok (start_dialog))                               ;开始对话框
        (cond
	  ( (= ok 2)                                           ;如果按下初始颜色
            (pick_color)                                       ;取得颜色
	    (new_dialog "fractal" ID)
	    (NewDCL)                                           ;开新对话框
	    (get_value)                                        ;取得其值
	    (setq option 2)
          )
	  ( (= ok 3)                                           ;如果按下点取按钮
	    (getlimits)                                        ;取得上下左右界限
	    (get_value)                                        ;取得其值
	    (setq option 3)
	  )
        )
      )                                                  
      (cond
	( (= option 0)
	  (princ "\n你已取消操作!")
	)  
	( (and (= option 1) (check))                           ;参数检查
	  (setq t0 (getvar "TDUSRTIMER"))	               ;开始计时
	  (if (= R1 "T1")	                               ;判断类型
	    (Mandelbrot J1 J2 J3 X0 Y0 X1 Y1 X2 Y2 col0 G1 R2 R3 0 S1)
		                                               ;画曼氏图
            (Julia J1 J2 J3 X0 Y0 X1 Y1 X2 Y2 col0 G1 R2 R3 0 S1)
		                                               ;画朱氏图
	  )
          (princ "\n画分形用时")
          (princ (* (- (getvar "TDUSRTIMER") t0) 86400))       ;计时结束
          (princ "秒\n")
          (vla-zoomwindow *APP
	    (vlax-3d-point (list 0 0))
	    (vlax-3d-point J2)
	  )                                                
	  (vla-zoomscaled *APP 0.9 acZoomScaledRelative)       ;放大图形
	)
	(t (alert "数据输入有误!"))
      )
    )
    (alert "对话框加载错误!")
  )
  (unload_dialog ID)                                           ;卸载对话框
  (gc)                                                         ;清理内存
  (princ)                                                      ;静默退出
)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -