lerp functions
parent
5eb51aa0b3
commit
2a00f10d1a
|
@ -157,3 +157,8 @@ IN: math.functions.tests
|
|||
2135623355842621559
|
||||
[ >bignum ] tri@ ^mod
|
||||
] 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
|
||||
|
||||
: 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
|
||||
[ 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 )
|
||||
[ [ 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: norm-sq { array } ;
|
||||
HINTS: norm { array } ;
|
||||
|
@ -50,3 +56,6 @@ HINTS: v/ { array array } ;
|
|||
HINTS: vmax { array array } ;
|
||||
HINTS: vmin { array array } ;
|
||||
HINTS: v. { array array } ;
|
||||
|
||||
HINTS: vlerp { array array array } ;
|
||||
HINTS: vnlerp { array array object } ;
|
||||
|
|
Loading…
Reference in New Issue