Merge branch 'master' of /cygdrive/z/Documents/Code/others/factor
commit
ec1918aaa8
|
@ -157,3 +157,8 @@ IN: math.functions.tests
|
||||||
2135623355842621559
|
2135623355842621559
|
||||||
[ >bignum ] tri@ ^mod
|
[ >bignum ] tri@ ^mod
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
|
[ 1.0 ] [ 1.0 2.5 0.0 lerp ] unit-test
|
||||||
|
[ 2.5 ] [ 1.0 2.5 1.0 lerp ] unit-test
|
||||||
|
[ 1.75 ] [ 1.0 2.5 0.5 lerp ] unit-test
|
||||||
|
|
||||||
|
|
|
@ -262,3 +262,6 @@ M: real atan fatan ;
|
||||||
[ drop ] [ dup 0 < [ - 1- ] [ - ] if ] if ; foldable
|
[ drop ] [ dup 0 < [ - 1- ] [ - ] if ] if ; foldable
|
||||||
|
|
||||||
: ceiling ( x -- y ) neg floor neg ; foldable
|
: ceiling ( x -- y ) neg floor neg ; foldable
|
||||||
|
|
||||||
|
: lerp ( a b t -- a_t ) [ over - ] dip * + ; inline
|
||||||
|
|
||||||
|
|
|
@ -9,3 +9,8 @@ USING: math.vectors tools.test ;
|
||||||
[ 5 ] [ { 1 2 } norm-sq ] unit-test
|
[ 5 ] [ { 1 2 } norm-sq ] unit-test
|
||||||
[ 13 ] [ { 2 3 } norm-sq ] unit-test
|
[ 13 ] [ { 2 3 } norm-sq ] unit-test
|
||||||
|
|
||||||
|
[ { 1.0 2.5 } ] [ { 1.0 2.5 } { 2.5 1.0 } 0.0 vnlerp ] unit-test
|
||||||
|
[ { 2.5 1.0 } ] [ { 1.0 2.5 } { 2.5 1.0 } 1.0 vnlerp ] unit-test
|
||||||
|
[ { 1.75 1.75 } ] [ { 1.0 2.5 } { 2.5 1.0 } 0.5 vnlerp ] unit-test
|
||||||
|
|
||||||
|
[ { 1.75 2.125 } ] [ { 1.0 2.5 } { 2.5 1.0 } { 0.5 0.25 } vlerp ] unit-test
|
||||||
|
|
|
@ -32,6 +32,12 @@ IN: math.vectors
|
||||||
: set-axis ( u v axis -- w )
|
: set-axis ( u v axis -- w )
|
||||||
[ [ zero? 2over ? ] dip swap nth ] map-index 2nip ;
|
[ [ zero? 2over ? ] dip swap nth ] map-index 2nip ;
|
||||||
|
|
||||||
|
: vlerp ( a b t -- a_t )
|
||||||
|
[ lerp ] 3map ;
|
||||||
|
|
||||||
|
: vnlerp ( a b t -- a_t )
|
||||||
|
[ lerp ] curry 2map ;
|
||||||
|
|
||||||
HINTS: vneg { array } ;
|
HINTS: vneg { array } ;
|
||||||
HINTS: norm-sq { array } ;
|
HINTS: norm-sq { array } ;
|
||||||
HINTS: norm { array } ;
|
HINTS: norm { array } ;
|
||||||
|
@ -50,3 +56,6 @@ HINTS: v/ { array array } ;
|
||||||
HINTS: vmax { array array } ;
|
HINTS: vmax { array array } ;
|
||||||
HINTS: vmin { array array } ;
|
HINTS: vmin { array array } ;
|
||||||
HINTS: v. { array array } ;
|
HINTS: v. { array array } ;
|
||||||
|
|
||||||
|
HINTS: vlerp { array array array } ;
|
||||||
|
HINTS: vnlerp { array array object } ;
|
||||||
|
|
Loading…
Reference in New Issue