25'ten fazla konu seçemezsiniz
Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
|
- (import "oo.slime")
-
- (define-package math
-
- (define pi 3.14159265)
-
- (define (abs x)
- (if (> x 0) x (- x)))
-
- (define (sqrt x)
- (** x 0.5))
-
- (define-class vector3 (x y z)
- (define (get-x) x)
- (define (get-y) y)
- (define (get-z) z)
-
- (define (set-x new-x) (mutate x new-x))
- (define (set-y new-y) (mutate y new-y))
- (define (set-z new-z) (mutate z new-z))
-
- (define (length)
- (** (+ (* x x) (* y y) (* z z)) 0.5))
-
- (define (scale fac)
- (mutate x (* fac x))
- (mutate y (* fac y))
- (mutate z (* fac z))
- fac)
-
- (define (add other)
- (make-vector3
- (+ x (other get-x))
- (+ y (other get-y))
- (+ z (other get-z))))
-
- (define (subtract other)
- (make-vector3
- (- x (other get-x))
- (- y (other get-y))
- (- z (other get-z))))
-
- (define (scalar-product other)
- (+ (* x (other get-x))
- (* y (other get-y))
- (* z (other get-z))))
-
- (define (cross-product other)
- (make-vector3
- (- (* y (other get-z)) (* z (other get-y)))
- (- (* z (other get-x)) (* x (other get-z)))
- (- (* x (other get-y)) (* y (other get-x)))))
-
- (define (print)
- (printf :sep "" "[vector3] (" x y z ")"))
- )
- )
|