
LISP绘图问题
最近做了个已知椭圆画四心圆的小程序,为什么全屏的时候就画错,局部显示的时候就能画正确呢?-------------------刚写了这么多就发现有毛病捏。(defunc:...
最近做了个已知椭圆画四心圆的小程序,为什么全屏的时候就画错,局部显示的时候就能画正确呢?
-------------------刚写了这么多就发现有毛病捏。
(defun c:el4 ()
(setq o (getpoint "\n给出椭圆的中心:"))
(setq ox (car o))
(setq oy (cadr o))
(setq d (getdist "\n给出长轴长度:"))
(setq b (getdist "\n给出短轴长度:"))
(setq oo1 (* (/ 1 (* 4 d)) (- d b) (+ (+ d b) (sqrt (+ (* d d) (* b b))))))
(setq oo2 (* (/ d b) oo1))
(command "circle" (list (+ ox oo1) oy) (- (/ d 2) oo1))
(command "circle" (list (- ox oo1) oy) (- (/ d 2) oo1))
(command "circle" (list ox (+ oo2 oy)) (+ oo2 (/ b 2)))
(command "circle" (list ox (- oy oo2)) (+ oo2 (/ b 2)))
)
神马问题捏??? 展开
-------------------刚写了这么多就发现有毛病捏。
(defun c:el4 ()
(setq o (getpoint "\n给出椭圆的中心:"))
(setq ox (car o))
(setq oy (cadr o))
(setq d (getdist "\n给出长轴长度:"))
(setq b (getdist "\n给出短轴长度:"))
(setq oo1 (* (/ 1 (* 4 d)) (- d b) (+ (+ d b) (sqrt (+ (* d d) (* b b))))))
(setq oo2 (* (/ d b) oo1))
(command "circle" (list (+ ox oo1) oy) (- (/ d 2) oo1))
(command "circle" (list (- ox oo1) oy) (- (/ d 2) oo1))
(command "circle" (list ox (+ oo2 oy)) (+ oo2 (/ b 2)))
(command "circle" (list ox (- oy oo2)) (+ oo2 (/ b 2)))
)
神马问题捏??? 展开
展开全部
(defun c:el4 ()
(setq a (getvar "osmode"))
(setvar "osmode" 0)
(setq o (getpoint "\n给出椭圆的中心:"))
(setq ox (car o))
(setq oy (cadr o))
(setq d (getdist "\n给出长轴长度:"))
(setq b (getdist "\n给出短轴长度:"))
(setq oo1 (* (/ 1 (* 4 d)) (- d b) (+ (+ d b) (sqrt (+ (* d d) (* b b))))))
(setq oo2 (* (/ d b) oo1))
(command "circle" (list (+ ox oo1) oy) (- (/ d 2) oo1))
(command "circle" (list (- ox oo1) oy) (- (/ d 2) oo1))
(command "circle" (list ox (+ oo2 oy)) (+ oo2 (/ b 2)))
(command "circle" (list ox (- oy oo2)) (+ oo2 (/ b 2)))
)
(setvar "osmode" a)
)
(setq a (getvar "osmode"))
(setvar "osmode" 0)
(setq o (getpoint "\n给出椭圆的中心:"))
(setq ox (car o))
(setq oy (cadr o))
(setq d (getdist "\n给出长轴长度:"))
(setq b (getdist "\n给出短轴长度:"))
(setq oo1 (* (/ 1 (* 4 d)) (- d b) (+ (+ d b) (sqrt (+ (* d d) (* b b))))))
(setq oo2 (* (/ d b) oo1))
(command "circle" (list (+ ox oo1) oy) (- (/ d 2) oo1))
(command "circle" (list (- ox oo1) oy) (- (/ d 2) oo1))
(command "circle" (list ox (+ oo2 oy)) (+ oo2 (/ b 2)))
(command "circle" (list ox (- oy oo2)) (+ oo2 (/ b 2)))
)
(setvar "osmode" a)
)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询