Complex
This sketch plots on the complex plane
Toggle shader source Remix this
:: <complex> ( a b -- c ) a b vec2 ;
:: real>> ( c -- a ) c .x ;
:: imag>> ( c -- b ) c .y ;
:: c+ ( a b -- c )
\ add two complex numbers
a real>> b real>> +
a imag>> b imag>> +
<complex>
;
:: c* ( a b -- c )
\ multiply two complex numbers
\ (a + bi)*(c + di) = ac + (bc + ad)i - bd
a real>> b real>> *
a imag>> b imag>> *
-
a imag>> b real>> *
a real>> b imag>> *
+
<complex>
;
:: r+ ( c r -- c )
\ add a real
c real>> r +
c imag>>
<complex>
;
:: r* ( c s -- c )
\ multiply by a real
c real>> s *
c imag>>
<complex>
;
:: c^ ( c pow -- c )
\ raise a complex to a power
1 0 <complex>
pow [ c c* ] times
;
: main
uv .x uv .y <complex>
\ y = x^3 + 0.5
3 c^ .5 r+
\ zero fn
length
\ color
time -
palette
1.0 vec4
;