Advertisement
Guest User

Untitled

a guest
Dec 16th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 1.24 KB | None | 0 0
  1. #lang racket
  2. (require "vect2d.rkt")
  3. (define (my-relaxator)
  4.     (define c1 2)
  5.     (define c2 30)
  6.     (define c3 (sqr 30))
  7.     (define c4 0.1)
  8.   (define (this methode . Largs)
  9.     (case methode
  10.       ((get-c1) c1)
  11.       ((get-c2) c2)
  12.       ((get-c3) c3)
  13.       ((get-c4) c4)
  14.       ((set-c1) (set! c1 (first Largs)))
  15.       ((set-c2) (set! c2 (first Largs)))
  16.       ((set-c3) (set! c3 (first Largs)))
  17.       ((set-c4) (set! c4 (first Largs)))))
  18.     (define (force-e fpos node-id1 node-id2)
  19.       (define v1 (hash-ref fpos node-id1)) ;; fpos = function de placement
  20.       (define v2 (hash-ref fpos node-id2))
  21.       (define u (vect-unit (vect-sum (vect-scalar -1 v1) v2)))
  22.       (define d (sqrt (vect-sum (sqr(- (coord-x v1) (coord-x v2))) (sqr (coord-y v1) (coord-y v2)))))
  23.       (define k (/ (- c3) (sqr d)))
  24.       (define fe (vect-scalar k u))
  25.       fe)
  26.  
  27.     (define (force-m fpos node-id1 node-id2)
  28.       (define v1 (hash-ref fpos node-id1))
  29.       (define v2 (hash-ref fpos node-id2))
  30.       (define u (vect-unit (vect-sum (vect-scalar -1 v1) v2)))
  31.       (define d (sqrt (vect-sum (sqr(- (coord-x v1) (coord-x v2))) (sqr (coord-y v1) (coord-y v2)))))
  32.       (define k (* c1 (log(/ d c2))))
  33.       (define fm (vect-scalar k u))
  34.       fm)
  35.     this)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement