;
; Sin curve ±×¸®´Â ¸®½À
; Command : Sin-Curve
;

(defun dtr (a) (* pi (/ a 180.)))
(defun c:Sin-Curve ( / olderr sosmd sblip spick clay dimsc a b c r x y l an)
    (setq olderr  *error*  *error* error)
    (setq sosmd (getvar "OSMODE"))
    (setvar "osmode" 32)
    (setq a (getpoint "n Enter left lower point: ")
          b (getpoint "n Enter right upper point: "))
    (setq r (/ (- (cadr b) (cadr a)) 2.0)
          c (list (/ (+ (car a) (car b)) 2.0) (/ (+ (cadr a) (cadr b)) 2.0))
          x (abs (- (car a) (car c)))
;          y (abs (- (cadr a) (cadr c)))
          l (/ x 25.)
          an (/ 90 25.)
    )
    (setvar "OSMODE" 0)
    (command "PLINE" a
                    (list (- (car c) (* l 24)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 24)) r))))
                    (list (- (car c) (* l 23)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 23)) r))))
                    (list (- (car c) (* l 22)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 22)) r))))
                    (list (- (car c) (* l 21)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 21)) r))))
                    (list (- (car c) (* l 20)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 20)) r))))
                    (list (- (car c) (* l 19)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 19)) r))))
                    (list (- (car c) (* l 18)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 18)) r))))
                    (list (- (car c) (* l 17)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 17)) r))))
                    (list (- (car c) (* l 16)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 16)) r))))
                    (list (- (car c) (* l 15)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 15)) r))))
                    (list (- (car c) (* l 14)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 14)) r))))
                    (list (- (car c) (* l 13)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 13)) r))))
                    (list (- (car c) (* l 12)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 12)) r))))
                    (list (- (car c) (* l 11)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 11)) r))))
                    (list (- (car c) (* l 10)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 10)) r))))
                    (list (- (car c) (* l 9)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 9)) r))))
                    (list (- (car c) (* l 8)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 8)) r))))
                    (list (- (car c) (* l 7)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 7)) r))))
                    (list (- (car c) (* l 6)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 6)) r))))
                    (list (- (car c) (* l 5)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 5)) r))))
                    (list (- (car c) (* l 4)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 4)) r))))
                    (list (- (car c) (* l 3)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 3)) r))))
                    (list (- (car c) (* l 2)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 2)) r))))
                    (list (- (car c) (* l 1)) (- (cadr c) (cadr (polar '(0 0) (dtr (* an 1)) r))))
                    c
                    (list (+ (car c) (* l 1)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 1)) r))))
                    (list (+ (car c) (* l 2)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 2)) r))))
                    (list (+ (car c) (* l 3)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 3)) r))))
                    (list (+ (car c) (* l 4)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 4)) r))))
                    (list (+ (car c) (* l 5)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 5)) r))))
                    (list (+ (car c) (* l 6)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 6)) r))))
                    (list (+ (car c) (* l 7)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 7)) r))))
                    (list (+ (car c) (* l 8)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 8)) r))))
                    (list (+ (car c) (* l 9)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 9)) r))))
                    (list (+ (car c) (* l 10)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 10)) r))))
                    (list (+ (car c) (* l 11)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 11)) r))))
                    (list (+ (car c) (* l 12)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 12)) r))))
                    (list (+ (car c) (* l 13)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 13)) r))))
                    (list (+ (car c) (* l 14)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 14)) r))))
                    (list (+ (car c) (* l 15)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 15)) r))))
                    (list (+ (car c) (* l 16)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 16)) r))))
                    (list (+ (car c) (* l 17)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 17)) r))))
                    (list (+ (car c) (* l 18)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 18)) r))))
                    (list (+ (car c) (* l 19)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 19)) r))))
                    (list (+ (car c) (* l 20)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 20)) r))))
                    (list (+ (car c) (* l 21)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 21)) r))))
                    (list (+ (car c) (* l 22)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 22)) r))))
                    (list (+ (car c) (* l 23)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 23)) r))))
                    (list (+ (car c) (* l 24)) (+ (cadr c) (cadr (polar '(0 0) (dtr (* an 24)) r))))
                    b
                    ""    )
    (command "PEDIT" "l" "j" c (list (- (car a) 1) (cadr a)) (list (+ (car b) 1) (cadr b)) "" "l" "on" "" )
    (setvar "OSMODE" sosmd)
    (prin1)
)
;