99 3D: Parametric surfaces and calculus
3D reference map · First 3D picture
Parametric surfaces use a fixed rectangular sampling topology. A surface is sampled once at inclusive parameter-grid sites and therefore has stable vertex and triangle identities. Its normals use declared analytic derivatives when both are supplied; otherwise they use deterministic centred/one-sided finite differences, adjacent-face fallback, and explicit unresolved-index reporting.
procedure
(parametric-surface3d procedure [ #:u-range u-range #:v-range v-range #:resolution resolution] #:id id) → surface3d? procedure : procedure? u-range : list? = (list -1 1) v-range : list? = (list -1 1) resolution : list? = (list 33 33) id : symbol?
procedure
(function-surface3d function [ #:x-range x-range #:y-range y-range #:resolution resolution] #:id id) → surface3d? function : procedure? x-range : list? = (list -1 1) y-range : list? = (list -1 1) resolution : list? = (list 33 33) id : symbol?
procedure
(surface3d? value) → boolean?
value : any/c
procedure
(surface3d-resolution surface) → list?
surface : surface3d?
procedure
(surface3d-position-at surface u v) → vec3?
surface : surface3d? u : finite-real? v : finite-real?
procedure
(surface3d-normal-at surface u v) → vec3?
surface : surface3d? u : finite-real? v : finite-real?
procedure
(surface-color surface color) → surface3d?
surface : surface3d? color : color-spec?
procedure
(surface-color-by-height surface) → surface3d?
surface : surface3d?
procedure
(surface-color-by-scalar surface scalar) → surface3d?
surface : surface3d? scalar : procedure?
procedure
(surface-checkerboard surface) → surface3d?
surface : surface3d?
procedure
(surface-point surface u v #:id id) → mesh3d?
surface : surface3d? u : finite-real? v : finite-real? id : symbol?
procedure
(surface-tangent-u surface u v #:id id) → group3d?
surface : surface3d? u : finite-real? v : finite-real? id : symbol?
procedure
(surface-tangent-v surface u v #:id id) → group3d?
surface : surface3d? u : finite-real? v : finite-real? id : symbol?
procedure
(surface-normal surface u v #:id id) → group3d?
surface : surface3d? u : finite-real? v : finite-real? id : symbol?
procedure
(surface-tangent-plane surface u v #:id id) → mesh3d?
surface : surface3d? u : finite-real? v : finite-real? id : symbol?
procedure
(surface-coordinate-curve surface #:id id) → curve3d?
surface : surface3d? id : symbol?
procedure
(surface-gradient-arrow surface x y #:id id) → group3d?
surface : surface3d? x : finite-real? y : finite-real? id : symbol?