Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #lang racket
- (require "vect2d.rkt")
- (define (my-relaxator)
- (define c1 2)
- (define c2 30)
- (define c3 (sqr 30))
- (define c4 0.1)
- (define (this methode . Largs)
- (case methode
- ((get-c1) c1)
- ((get-c2) c2)
- ((get-c3) c3)
- ((get-c4) c4)
- ((set-c1) (set! c1 (first Largs)))
- ((set-c2) (set! c2 (first Largs)))
- ((set-c3) (set! c3 (first Largs)))
- ((set-c4) (set! c4 (first Largs)))))
- (define (force-e fpos node-id1 node-id2)
- (define v1 (hash-ref fpos node-id1)) ;; fpos = function de placement
- (define v2 (hash-ref fpos node-id2))
- (define u (vect-unit (vect-sum (vect-scalar -1 v1) v2)))
- (define d (sqrt (vect-sum (sqr(- (coord-x v1) (coord-x v2))) (sqr (coord-y v1) (coord-y v2)))))
- (define k (/ (- c3) (sqr d)))
- (define fe (vect-scalar k u))
- fe)
- (define (force-m fpos node-id1 node-id2)
- (define v1 (hash-ref fpos node-id1))
- (define v2 (hash-ref fpos node-id2))
- (define u (vect-unit (vect-sum (vect-scalar -1 v1) v2)))
- (define d (sqrt (vect-sum (sqr(- (coord-x v1) (coord-x v2))) (sqr (coord-y v1) (coord-y v2)))))
- (define k (* c1 (log(/ d c2))))
- (define fm (vect-scalar k u))
- fm)
- this)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement