sliced
several onion skin thin slices, each thinner than the last.. .
This commit is contained in:
parent
23ab92bdf7
commit
5b2e5ad26e
3 changed files with 17 additions and 35 deletions
|
@ -1,6 +1,6 @@
|
||||||
;; -*- mode: scheme -*-
|
;; -*- mode: scheme -*-
|
||||||
;;
|
;;
|
||||||
;; basic layout attmepts
|
;; basic layout attempts
|
||||||
;;
|
;;
|
||||||
;; copyright (C) 2004 FoAM vzw
|
;; copyright (C) 2004 FoAM vzw
|
||||||
;; You are granted the rights to distribute and use this software
|
;; You are granted the rights to distribute and use this software
|
||||||
|
@ -12,12 +12,13 @@
|
||||||
|
|
||||||
;; authors
|
;; authors
|
||||||
;; - nik gaffney <nik@fo.am>
|
;; - nik gaffney <nik@fo.am>
|
||||||
|
;; - tim boykett <tim@timesup.org>
|
||||||
|
|
||||||
;; requirements
|
;; requirements
|
||||||
;; -
|
;; - qfwfq and descendants
|
||||||
|
|
||||||
;; commentary
|
;; commentary
|
||||||
;; - wobble -> heirarchical rectangular spread
|
;; - wobble -> hierarchical rectangular spread
|
||||||
;; - shuffle -> randomise positions
|
;; - shuffle -> randomise positions
|
||||||
;; - relax -> pseudo stabilisation using edge lengths
|
;; - relax -> pseudo stabilisation using edge lengths
|
||||||
;; - shadowpi -> variation on circular parent-centric splay
|
;; - shadowpi -> variation on circular parent-centric splay
|
||||||
|
@ -26,7 +27,9 @@
|
||||||
;; 2006-09-11
|
;; 2006-09-11
|
||||||
;; - scraped into coherence from various sources
|
;; - scraped into coherence from various sources
|
||||||
;; 2006-11-12
|
;; 2006-11-12
|
||||||
;; - mottled shadows, multiple beginings
|
;; - mottled shadows, multiple beginning
|
||||||
|
;; 2006-11-26
|
||||||
|
;; - reshaping showdowpi with help from Dr Boykett
|
||||||
|
|
||||||
|
|
||||||
(module layout mzscheme
|
(module layout mzscheme
|
||||||
|
@ -41,8 +44,7 @@
|
||||||
(provide wobble-tree
|
(provide wobble-tree
|
||||||
shuffle-tree
|
shuffle-tree
|
||||||
relax-tree
|
relax-tree
|
||||||
shadowpi-tree
|
shadowpi-tree)
|
||||||
shadowtwopi-tree)
|
|
||||||
|
|
||||||
|
|
||||||
;;;;;; ; ; ;; ;;;; ;; ; ;;
|
;;;;;; ; ; ;; ;;;; ;; ; ;;
|
||||||
|
@ -98,7 +100,7 @@
|
||||||
;;;;; ;;;;;; ;; ; ;; ;
|
;;;;; ;;;;;; ;; ; ;; ;
|
||||||
;;
|
;;
|
||||||
;; energy stabilisation
|
;; energy stabilisation
|
||||||
;; - single itteration only, call as reqd.
|
;; - single iteration only, call as reqd.
|
||||||
;; - local epsilon & delta only
|
;; - local epsilon & delta only
|
||||||
;;
|
;;
|
||||||
;;;;; ; ;;; ; ;
|
;;;;; ; ;;; ; ;
|
||||||
|
@ -177,6 +179,7 @@
|
||||||
(define (-ve n)
|
(define (-ve n)
|
||||||
(- 0 n))
|
(- 0 n))
|
||||||
|
|
||||||
|
|
||||||
;;;;;;;;;;; ;; ; ;; ;
|
;;;;;;;;;;; ;; ; ;; ;
|
||||||
;;
|
;;
|
||||||
;; circular parent centric layout, in the shade of twopi
|
;; circular parent centric layout, in the shade of twopi
|
||||||
|
@ -195,7 +198,7 @@
|
||||||
[e (length parents)]
|
[e (length parents)]
|
||||||
[xi (snip-x node)]
|
[xi (snip-x node)]
|
||||||
[yi (snip-y node)]
|
[yi (snip-y node)]
|
||||||
(b (/ pi (if (eq? e 0) 1 e)))
|
(b (/ pi (if (eq? e 0) 1 e))) ;; twopi -> full circle
|
||||||
(a (- (+ theta (/ pi 2)) (/ b 2)))
|
(a (- (+ theta (/ pi 2)) (/ b 2)))
|
||||||
(r1 (* 2 r (sin (/ b 2)))))
|
(r1 (* 2 r (sin (/ b 2)))))
|
||||||
|
|
||||||
|
@ -209,26 +212,5 @@
|
||||||
(set! a (- a b))))
|
(set! a (- a b))))
|
||||||
parents)))
|
parents)))
|
||||||
|
|
||||||
|
|
||||||
(define (shadowtwopi-tree node pb theta r)
|
|
||||||
;; given a node from which to draw the layout, angle theta, radius, r
|
|
||||||
(let* ([parents (send node get-parents)]
|
|
||||||
[e (length parents)]
|
|
||||||
[xi (snip-x node)]
|
|
||||||
[yi (snip-y node)]
|
|
||||||
(b (/ twopi (if (eq? e 0) 1 e)))
|
|
||||||
(a (- (+ theta (/ pi 2)) (/ b 2)))
|
|
||||||
(r1 (* 2 r (sin (/ b 2)))))
|
|
||||||
|
|
||||||
;; distribute parents of given node evenly along a containment circle
|
|
||||||
;; centered on the node.
|
|
||||||
(for-each (lambda (parent)
|
|
||||||
(let ((x1 (+ xi (* r (cos a))))
|
|
||||||
(y1 (+ yi (* r (sin a)))))
|
|
||||||
(send pb move-to parent x1 y1)
|
|
||||||
(shadowpi-tree parent pb a r1)
|
|
||||||
(set! a (- a b))))
|
|
||||||
parents)))
|
|
||||||
|
|
||||||
|
|
||||||
) ;; end of module
|
) ;; end of module
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,6 @@
|
||||||
relax-tree
|
relax-tree
|
||||||
eval-tree
|
eval-tree
|
||||||
shadowpi-tree
|
shadowpi-tree
|
||||||
shadowtwopi-tree
|
|
||||||
|
|
||||||
tree->sexp
|
tree->sexp
|
||||||
to-string
|
to-string
|
||||||
|
|
|
@ -23,8 +23,9 @@
|
||||||
;;
|
;;
|
||||||
;; keyboard controls
|
;; keyboard controls
|
||||||
;; C-n - adds new node, connected to a selected node
|
;; C-n - adds new node, connected to a selected node
|
||||||
;; C-c - conencts 2 selected nodes
|
;; C-c - connects 2 selected nodes
|
||||||
;; C-d - disconnects selected node
|
;; C-d - disconnects selected node
|
||||||
|
;; C-l - autolayout from selcted node
|
||||||
;; delete - deletes node
|
;; delete - deletes node
|
||||||
;; enter - evaluates current node
|
;; enter - evaluates current node
|
||||||
|
|
||||||
|
@ -117,8 +118,8 @@
|
||||||
(send next remove-child selected-snip))]
|
(send next remove-child selected-snip))]
|
||||||
[(#\z) ;; C-z re.colour
|
[(#\z) ;; C-z re.colour
|
||||||
(colour-tree selected-snip p)]
|
(colour-tree selected-snip p)]
|
||||||
[(#\l) ;; C-x re.lapse
|
[(#\l) ;; C-l re.lapse -> splay
|
||||||
(shadowtwopi-tree selected-snip p 0 80)]
|
(shadowpi-tree selected-snip p 0 63)]
|
||||||
[(#\=) ;; C-= zoom->out
|
[(#\=) ;; C-= zoom->out
|
||||||
(send p zoom 1.1)]
|
(send p zoom 1.1)]
|
||||||
[(#\-) ;; C-- zoom->in
|
[(#\-) ;; C-- zoom->in
|
||||||
|
|
Loading…
Reference in a new issue