Color wheel: Difference between revisions
m
→{{header|EasyLang}}
m (correction: cyan (blue) at 210 degrees) |
|||
(9 intermediate revisions by 6 users not shown) | |||
Line 329:
{{out}}
Png Image [https://ibb.co/T0w8KyF].
=={{header|EasyLang}}==
[https://easylang.dev/show/#cod=bZLdboMwDIXveYpzSagaCrTVqi4Pw08CSHSBkG3w9pOBCjK4AKJzPtvBdmt0jqrPYlNmqL4l+tQiMzU4DEpk4B6ACgI+uWeoRmtDJEOAO5kKAtXqkNRCTEkC+BHOlJOR3O1kBFCTZY+s6agYe19hU6FWk3KhMwCzhD9RQsDiiQwCLbmyWdhow3YLOcfs2XjDtjvWOmxywHYLmZnaYa8b1i5s+5/t5eFfvbmOXO5xr6XZ5b+VlA34PCilDUbqC6zG9fFYEhWkjTgjvr07RuSwJwkmeXBgUuueZtR3xsIvBgTEnShzgGJkK1irmf0UbgIaciVtCoHUpl8xhRaD49OGCfgzdkL0cWEIkdzdLNtt9adSIVViiOaVdeBcN9okB8ZL/0gMCHHDSG/HNDK3uPCEntXg3uZLA5h773l/ Run it]
{{trans|Go}}
<syntaxhighlight>
proc hsb2rgb hue sat bri . r g b .
h = (hue - floor hue) * 6
f = h - floor h
p = bri * (1 - sat)
q = bri * (1 - sat * f)
t = bri * (1 - sat * (1 - f))
h = floor h
if h = 0
r = bri ; g = t ; b = p
elif h = 1
r = q ; g = bri ; b = p
elif h = 2
r = p ; g = bri ; b = t
elif h = 3
r = p ; g = q ; b = bri
elif h = 4
r = t ; g = p ; b = bri
else
r = bri ; g = p ; b = q
.
.
proc cwheel . .
for y = 0 to 499
dy = y - 250
for x = 0 to 499
dx = x - 250
dist = sqrt (dx * dx + dy * dy)
if dist <= 250
theta = atan2 dy dx
hue = (theta + 180) / 360
hsb2rgb hue (dist / 250) 1 r g b
color3 r g b
move x / 5 y / 5
rect 0.3 0.3
.
.
.
.
cwheel
</syntaxhighlight>
=={{header|Fōrmulæ}}==
{{FormulaeEntry|page=https://formulae.org/?script=examples/Color_wheel}}
'''Solution'''
[[File:Fōrmulæ - Color wheel 01.png]]
'''Test case'''
Generating a color wheel of 300x300 pixels:
[[File:Fōrmulæ - Color wheel 02.png]]
[[File:Fōrmulæ - Color wheel 03.png]]
=={{header|FreeBASIC}}==
Line 1,136 ⟶ 1,190:
c = color(int(h * 255), int(s * 255), 255)
set(x, y, c) # note set() used as Processing set() not as Python set()</syntaxhighlight>
=={{header|Plain English}}==
<syntaxhighlight lang="plainenglish">
To draw the color wheel:
Start with the red color.
Turn right 80 points.
Loop.
If the user clicks on the screen, break.
Move to the center of the screen.
Draw a line 2 inches long.
Refresh the screen.
Change the current hue by 10 points.
Turn right 10 points.
Add 1 to a count.
If the count is 384, break. \ Plain English uses a circle divided into 384 degrees
Repeat.
Start in the middle of the screen facing north minus 80 points.
Use medium-sized letters.
Write "RED......YELLOW.....GREEN......CYAN......BLUE.....MAGENTA......" with the white pen 2-1/4 inches from the screen's center.
Refresh the screen.
Shut down.
</syntaxhighlight>
=={{header|Python}}==
Line 1,194 ⟶ 1,271:
(formerly Perl 6)
{{works with|Rakudo|2016.08}}
[[File:Color-wheel-perl6.png|thumb]]
<syntaxhighlight lang="raku" line>use Image::PNG::Portable;
Line 1,231 ⟶ 1,308:
} ).map: ((*+$m) * 255).Int
}</syntaxhighlight>
=={{header|Ring}}==
Line 1,572 ⟶ 1,647:
This file is no longer there!!! 10 Sep 2021
=={{header|Vala}}==
{{trans|Julia}}
<syntaxhighlight lang="vala">public class Example: Gtk.Application {
private Gtk.ApplicationWindow window;
private Gtk.DrawingArea drawing_area;
public Example() {
Object(application_id: "my.application", flags: ApplicationFlags.FLAGS_NONE);
this.activate.connect(() => {
window = new Gtk.ApplicationWindow(this);
drawing_area = new Gtk.DrawingArea();
drawing_area.set_draw_func(draw_circle);
window.set_child(drawing_area);
window.present();
});
}
private void draw_circle(Gtk.DrawingArea area, Cairo.Context cr, int width, int height) {
int centerx = width / 2;
int centery = height / 2;
double anglestep = 1.0 / width;
for (float theta = (float) 0.0; theta < 360; theta += (float) 0.1) {
float r;
float g;
float b;
Gtk.hsv_to_rgb(theta / (float) 360.0, 1, 1, out r, out g, out b);
cr.set_source_rgb(r, g, b);
cr.line_to(centerx, centery);
cr.arc(centerx, centery, ((double) width) / 2.2, GLib.Math.PI * 2 * theta / 360.0, anglestep);
cr.line_to(centerx, centery);
cr.stroke();
}
}
public static int main(string[] argv) {
var app = new Example();
return app.run(argv);
}
}</syntaxhighlight>
=={{header|VBScript}}==
Building a BMP file and opening it with the default viewer. It takes 5 seconds in my 5 years old notebook. Run with Cscript if you don want to be clicking at annoying message boxes.
Line 1,855 ⟶ 1,968:
</syntaxhighlight>
=={{out}}==
[[File:Colorwheel vbs.png]]
Line 1,860 ⟶ 1,974:
=={{header|Wren}}==
{{libheader|DOME}}
<syntaxhighlight lang="
import "dome" for Window
import "random" for Random
|