Function: calc-graph-add-3d
calc-graph-add-3d is an autoloaded, interactive and byte-compiled
function defined in calc-graph.el.gz.
Signature
(calc-graph-add-3d MANY)
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/calc/calc-graph.el.gz
(defun calc-graph-add-3d (many)
(interactive "P")
(calc-wrapper
(calc-graph-init)
(cond ((null many)
(calc-graph-add-curve (calc-graph-lookup (calc-top-n 3))
(calc-graph-lookup (calc-top-n 2))
(calc-graph-lookup (calc-top-n 1))))
((or (consp many) (eq many 0))
(let ((xdata (calc-graph-lookup (calc-top-n 3)))
(ydata (calc-graph-lookup (calc-top-n 2)))
(zlist (calc-top-n 1)))
(or (eq (car-safe zlist) 'vec)
(error "Z argument must be a vector"))
(while (setq zlist (cdr zlist))
(calc-graph-add-curve xdata ydata
(calc-graph-lookup (car zlist))))))
((> (setq many (prefix-numeric-value many)) 0)
(let ((xdata (calc-graph-lookup (calc-top-n (+ many 2))))
(ydata (calc-graph-lookup (calc-top-n (+ many 1)))))
(while (> many 0)
(calc-graph-add-curve xdata ydata
(calc-graph-lookup (calc-top-n many)))
(setq many (1- many)))))
(t
(let (curve)
(setq many (- many))
(while (> many 0)
(setq curve (calc-top-n many))
(or (and (eq (car-safe curve) 'vec)
(= (length curve) 4))
(error "Argument must be an [x,y,z] vector"))
(calc-graph-add-curve (calc-graph-lookup (nth 1 curve))
(calc-graph-lookup (nth 2 curve))
(calc-graph-lookup (nth 3 curve)))
(setq many (1- many))))))
(calc-graph-view-commands)))