Color wheel: Difference between revisions
Content added Content deleted
Line 223: | Line 223: | ||
img.write(file => 'color_wheel.png')</lang> |
img.write(file => 'color_wheel.png')</lang> |
||
=={{header| |
=={{header|Smart Basic}}== |
||
{{trans| |
{{trans|Basic}} |
||
<lang Smart Basic> |
|||
<lang ruby>require('Imager') |
|||
' Colour Palette Circle |
|||
GET SCREEN SIZE sw,sh |
|||
xmax=0.45*3/7*(sw+sh) |
|||
x0=sw/2!y0=sh/2 |
|||
twopi=2*3.1415926 |
|||
GRAPHICS |
|||
GRAPHICS CLEAR |
|||
DIM triX(1000), triY(1000) |
|||
triX(0)=x0 ! triY(0)=y0 |
|||
steps=INT(1^2*360)+1 |
|||
dAngle=twopi/steps |
|||
dAngle2=dAngle/2 |
|||
REFRESH OFF |
|||
FOR i=0 TO steps-1 |
|||
pal(i/steps+TintOffset) |
|||
ANGLE=i*dAngle |
|||
FILL COLOR pal.r,pal.g,pal.b |
|||
DRAW COLOR pal.r,pal.g,pal.b |
|||
x=x0+(xmax-radius)*COS(ANGLE) |
|||
y=y0-(xmax-radius)*SIN(ANGLE) |
|||
k=0 |
|||
FOR j=-dAngle2 TO dAngle2 STEP 0.02 |
|||
⚫ | |||
triX(k)=x0+xmax*COS(ANGLE+j) |
|||
triY(k)=y0-xmax*SIN(ANGLE+j) |
|||
NEXT j |
|||
k+=1 |
|||
triX(k)=x0+xmax*COS(ANGLE+dAngle2) |
|||
triY(k)=y0-xmax*SIN(ANGLE+dAngle2) |
|||
DRAW POLY triX,triY COUNT k+1 |
|||
FILL POLY triX,triY COUNT k+1 |
|||
NEXT i |
|||
REFRESH ON |
|||
END |
|||
DEF pal(tint) |
|||
var (width, height) = (300, 300) |
|||
tint=tint*360 |
|||
var center = Complex(width/2 , height/2) |
|||
h=(tint%360)/60 ! f=FRACT(h) ! z=1-f ! ic=FLOOR(h)+1 |
|||
ON ic GOTO s1,s2,s3,s4,s5,s6 |
|||
var img = %s|Imager|.new( |
|||
s1: r=1 ! g=f ! b=0 ! GOTO done |
|||
xsize => width, |
|||
s2: r=z ! g=1 ! b=0 ! GOTO done |
|||
ysize => height, |
|||
s3: r=0 ! g=1 ! b=f ! GOTO done |
|||
s4: r=0 ! g=z ! b=1 ! GOTO done |
|||
s5: r=f ! g=0 ! b=1 ! GOTO done |
|||
for y, x in (^height ~X ^width) { |
|||
s6: r=1 ! g=0 ! b=z ! done: |
|||
END DEF |
|||
var magnitude = (vector.abs * 2 / width) |
|||
</lang> |
|||
var direction = ((Num.pi + atan2(vector.real, vector.imag)) / Num.tau) |
|||
img.setpixel( |
|||
x => x, |
|||
y => y, |
|||
color => Hash(hsv => [360*direction, magnitude, magnitude < 1 ? 1 : 0]) |
|||
⚫ | |||
} |
|||
img.write(file => 'color_wheel.png')</lang> |
|||
=={{header|zkl}}== |
=={{header|zkl}}== |