Function: artist-ellipse-generate-quadrant
artist-ellipse-generate-quadrant is a byte-compiled function defined
in artist.el.gz.
Signature
(artist-ellipse-generate-quadrant X-RADIUS Y-RADIUS)
Documentation
Create a point-list for first quadrant.
Points go from (X-RADIUS, 0) to (0, Y-RADIUS). Quadrant is generated around origin.
Source Code
;; Defined in /usr/src/emacs/lisp/textmodes/artist.el.gz
;;
;; Circles and ellipses
;;
(defun artist-ellipse-generate-quadrant (x-radius y-radius)
"Create a point-list for first quadrant.
Points go from (X-RADIUS, 0) to (0, Y-RADIUS).
Quadrant is generated around origin."
(let* ((rx2 (* x-radius x-radius))
(ry2 (* y-radius y-radius))
(2rx2 (* 2 rx2))
(2ry2 (* 2 ry2))
(p)
(x 0)
(y y-radius)
(px 0)
(py (* 2rx2 y))
(point-list nil))
(artist-put-pixel point-list x y)
(setq p (round (+ ry2 (- (* rx2 y-radius)) (* 0.25 rx2))))
(while (< px py)
(setq x (1+ x)
px (+ px 2ry2))
(if (< p 0)
(setq p (+ p ry2 px))
(setq y (- y 1)
py (- py 2rx2)
p (+ p ry2 px (- py))))
(artist-put-pixel point-list x y))
(setq p (round (+ (* ry2 (+ x 0.5) (+ x 0.5))
(* rx2 (- y 1) (- y 1))
(- (* rx2 ry2)))))
(while (> y 0)
(setq y (- y 1)
py (- py 2rx2))
(if (> p 0)
(setq p (+ p rx2 (- py)))
(setq x (1+ x)
px (+ px 2ry2)
p (+ p rx2 (- py) px)))
(artist-put-pixel point-list x y))
point-list))