From: "andrew cooke" <andrew@...>
Date: Sat, 8 Sep 2007 05:53:40 -0400 (CLT)
Got the first graphics out of my new art project (napito - posted some of the scheme code earlier). There's still a lot to do, but I am really pleased at how this looks - there's a "black and white line plot" aesthetic with Op Art vibes. http://www.acooke.org/cgi/photo.py?start=napito So far I have support for plotting lines and polygons (and transforming the coordinate system), and for generating the bounding boxes. Next I need to do the dynamics (collision detection and physics being the hardest part). The code to generate the above is: (let* ((line (ln-line 1 1 0 '(1 0) '(-0.2 2 0) '(0.1 0))) (rotation (ln-rotation-coverage line 0 9)) (path (ln-path-coverage line 0 9)) (border (ln-border line 0 9)) (engine (nap-ps-engine '())) (sample (map nap-line (ln-sample line 0 9.05 0.1)))) (nap-generate engine (nap-series* (nap-shift-x 2) (nap-shift-y 2) (nap-scale 0.5) (nap-parallel* (nap-polygon rotation) (nap-polygon path) (nap-polygon border) (nap-series sample) ) (nap-close)))) Where the shift/scale is necessary as I don't have any default transforms configured (so the initial coord system is Postscript's default). Andrew PS For the record, just dumped Mefi again. Was an error to go back. Don't clearly understand what it is about that place. Anyway, asked for account to be cancelled and blocked DNS.
Collision Detection Working
From: "andrew cooke" <andrew@...>
Date: Sun, 9 Sep 2007 12:15:08 -0400 (CLT)
Just got this working too. See http://www.acooke.org/cgi/photo.py?start=napito-2 The process is: - for a particular time interval calculate all bounding boxes and identify interacting lines - repeatedly divide the interval in two until we find the first interacting pair - continue halving the interval down to some time limit - use an iterated first order solution to find all possible candidates (there are four line ends, each will at some point(s) intersect the extended other line) - filter candidates based on time interval - score candidates by time order and geometry - select best scoring candidate Andrew