src/3d/coordinates.lisp @ c716dc6a9a47
Lean into sb-cga
| author | Steve Losh <steve@stevelosh.com> |
|---|---|
| date | Sun, 15 May 2016 17:46:49 +0000 |
| parents | 8547dda4da61 |
| children | (none) |
(in-package #:coding-math.3d.coordinates) ;;; For this project, we'll define X and Y to be the typical 2D screen axes, and ;;; Z to be going into the screen (so it's a left-handed coordinate system). ;;; ;;; Cartesian coordinate vectors are: ;;; ;;; (x y z) ;;; ;;; Cylindrical coordinate vectors are: ;;; ;;; (radius azimuth height) where height is Y ;;; ;;; Polar coordinate vectors are: ;;; ;;; TODO (defun cylindrical-to-cartesian (coords) (with-vec (radius azimuth height) coords (vec (* radius (cos azimuth)) ; x height ; y (* radius (sin azimuth))))) ; z (defun cartesian-to-cylindrical (coords) (with-vec (x y z) coords (vec (sqrt (+ (square x) (square z))) ; r (atan z x) ; a y))) ; h (defun cylindrical-to-cartesian-cga (coords) (with-vec (radius azimuth height) coords (vec (* radius (cos azimuth)) ; x height ; y (* radius (sin azimuth))))) ; z