home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2008 February
/
PCWorld_2008-02_cd.bin
/
audio-video
/
reaper
/
reaper2028-install.exe
/
Effects
/
LOSER
/
gfxGoniometer
< prev
next >
Wrap
Text File
|
2007-12-12
|
3KB
|
126 lines
(C) 2007, Michael Gruhn.
desc:Goniometer
slider1:0<0,2,1{Dots,Lines,Rays}>Display
@init
gfx_clear=-1;
off = 500000;
rot=-45*0.017453292;
DOTS = 0;
LINES = 1;
RAYS = 2;
MAXDRAWSPLS = 10000;
PHASEUPDATERATE = srate/8;
n = 0;
phC = 0;
ph = 0;
@slider
@block
@sample
s0 = sign(spl0);
s1 = sign(spl1);
angle = atan( spl0 / spl1 );
(s0 == 1 && s1 == -1) || (s0 == -1 && s1 == -1) ? angle += 3.141592654;
s0 == -1 && s1 == 1 ? angle += 6.283185307;
spl1 == 0 ? spl0 > 0 ? angle = 1.570796327 : angle = 4.71238898;
spl0 == 0 ? spl1 > 0 ? angle = 0 : angle = 3.141592654;
radius = sqrt( sqr(spl0)+sqr(spl1) ) ;
angle -= rot;
vert = 0[b] = cos(angle)*radius;
horiz = off[b] = sin(angle)*radius;
b<MAXDRAWSPLS ? b += 1;
s0 != s1 ? phC-=1:phC+=1;
(n+=1) > PHASEUPDATERATE ? (
ph = (1-(phC/n))/2;
phC = n = 0;
);
@gfx
size = min(gfx_w,gfx_h-20);
sizeH = size/2;
sizeDSqr05 = sizeH * 0.70710681;
sizeQ = sizeH/2;
size3Q = 3*sizeQ;
(mouse_cap) ? (
gfx_r=gfx_g=gfx_b=0; gfx_a=1;
gfx_x=gfx_y=0;
gfx_rectto(gfx_w,gfx_h);
);
gfx_r=gfx_g=gfx_b=0; gfx_a=0.025;
gfx_x=gfx_y=0;
gfx_rectto(gfx_w,gfx_h);
x = y = sizeH;
i = min(b,MAXDRAWSPLS);
while (
slider1 == DOTS ? (
gfx_a=1;
gfx_x=sizeH+0[i]*sizeDSqr05;
gfx_y=sizeH-off[i]*sizeDSqr05;
gfx_setpixel(0.5,1,0);
):(
slider1 == LINES ? (
gfx_x=x; gfx_y=y;
x=sizeH+0[i]*sizeDSqr05;
y=sizeH-off[i]*sizeDSqr05;
):(
gfx_x=sizeH+0[i]*sizeDSqr05;
gfx_y=sizeH-off[i]*sizeDSqr05;
);
gfx_r=0.5; gfx_g=1; gfx_b=0; gfx_a=0.6;
gfx_lineto(x,y,0);
);
(i-=1)>0;
);
b=0;
gfx_r=gfx_g=gfx_b=0.8; gfx_a=1;
gfx_x=sizeQ; gfx_y=sizeQ;
gfx_lineto(size3Q,size3Q,0);
gfx_x=sizeQ; gfx_y=size3Q;
gfx_lineto(size3Q,sizeQ,0);
gfx_x = gfx_y = sizeQ;
gfx_drawchar($'L');
gfx_x = size3Q; gfx_y = sizeQ;
gfx_drawchar($'R');
gfx_x = sizeH; gfx_y = 0;
gfx_drawchar($'M');
gfx_x = 0; gfx_y = sizeH;
gfx_drawchar($'+');
gfx_drawchar($'S');
gfx_x = size-20; gfx_y = sizeH;
gfx_drawchar($'-');
gfx_drawchar($'S');
gfx_r=gfx_g=gfx_b=0; gfx_a=1;
gfx_x=0; gfx_y=size;
gfx_rectto(size+1,size+20);
gfx_r=1; gfx_g=0; gfx_b=0; gfx_a=1;
gfx_x=1+ph*(size-1); gfx_y=size+1;
gfx_lineto(gfx_x,size+19,0);
gfx_r=gfx_g=gfx_b=0.8; gfx_a=1;
gfx_x = 0; gfx_y = size+10;
gfx_drawnumber(0,0);
gfx_x = sizeH-8; gfx_y = size+10;
gfx_drawnumber(90,0);
gfx_x = size-25; gfx_y = size+10;
gfx_drawnumber(180,0);
gfx_r=0.5; gfx_g=1; gfx_b=0; gfx_a=1;
gfx_x = 0; gfx_y = size;
gfx_drawnumber(ph*180,0);