Draw pixel 2: Difference between revisions

m
→‎{{header|Wren}}: Changed to Wren S/H
m (Phix/pGUI)
m (→‎{{header|Wren}}: Changed to Wren S/H)
 
(12 intermediate revisions by 10 users not shown)
Line 10:
=={{header|Ada}}==
{{libheader|SDLAda}}
<langsyntaxhighlight Adalang="ada">with Ada.Numerics.Discrete_Random;
 
with SDL.Video.Windows.Makers;
Line 69:
Window.Finalize;
SDL.Finalise;
end Draw_A_Pixel_2;</langsyntaxhighlight>
 
=={{header|C}}==
Same as the [[Draw_a_pixel]] task, uses the random number functions of stdlib.h to plot a random point. Requires the [http://www.cs.colorado.edu/~main/bgi/cs1300/ WinBGIm] library.
<syntaxhighlight lang="c">
<lang C>
#include<graphics.h>
#include<stdlib.h>
Line 90:
return 0;
}
</syntaxhighlight>
</lang>
=={{header|Delphi}}==
{{libheader| Windows}}
{{libheader| Messages}}
{{libheader| SysUtils}}
<syntaxhighlight lang="delphi">
program Draw_a_pixel2;
 
{$APPTYPE CONSOLE}
 
uses
Windows,
Messages,
SysUtils;
 
const
WIN_WIDTH = 640;
WIN_HEIGHT = 480;
 
var
Msg: TMSG;
LWndClass: TWndClass;
hMainHandle: HWND;
 
procedure Paint(Handle: hWnd); forward;
 
procedure ReleaseResources;
begin
PostQuitMessage(0);
end;
 
function WindowProc(hWnd, Msg: Longint; wParam: wParam; lParam: lParam): Longint; stdcall;
begin
case Msg of
WM_PAINT:
Paint(hWnd);
WM_DESTROY:
ReleaseResources;
end;
Result := DefWindowProc(hWnd, Msg, wParam, lParam);
end;
 
procedure CreateWin(W, H: Integer);
var
Title: string;
begin
LWndClass.hInstance := hInstance;
with LWndClass do
begin
lpszClassName := 'OneYellowPixel';
Style := CS_PARENTDC or CS_BYTEALIGNCLIENT;
hIcon := LoadIcon(hInstance, 'MAINICON');
lpfnWndProc := @WindowProc;
hbrBackground := COLOR_BTNFACE + 1;
hCursor := LoadCursor(0, IDC_ARROW);
end;
 
Title := Format('Draw a YELLOW pixel random position in [%d, %d] ', [WIN_WIDTH,
WIN_HEIGHT]);
 
RegisterClass(LWndClass);
hMainHandle := CreateWindow(LWndClass.lpszClassName, Pchar(Title), WS_CAPTION
or WS_MINIMIZEBOX or WS_SYSMENU or WS_VISIBLE, ((GetSystemMetrics(SM_CXSCREEN)
- W) div 2), ((GetSystemMetrics(SM_CYSCREEN) - H) div 2), W, H, 0, 0, hInstance, nil);
end;
 
procedure ShowModal;
begin
while GetMessage(Msg, 0, 0, 0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end;
 
procedure Paint(Handle: hWnd);
var
ps: PAINTSTRUCT;
Dc: HDC;
begin
Dc := BeginPaint(Handle, ps);
 
// Fill bg with black
FillRect(Dc, ps.rcPaint, CreateSolidBrush($0));
 
// Do the magic
SetPixel(Dc, Random(WIN_WIDTH), Random(WIN_HEIGHT), $FFFF);
 
EndPaint(Handle, ps);
end;
 
begin
Randomize;
CreateWin(WIN_WIDTH, WIN_HEIGHT);
ShowModal();
end.</syntaxhighlight>
=={{header|Factor}}==
{{works with|Factor|0.99 development release 2019-07-10}}
<langsyntaxhighlight lang="factor">USING: kernel random raylib.ffi ;
 
640 480 2dup "random yellow pixel" init-window [ random ] bi@
Line 101 ⟶ 195:
begin-drawing BLACK clear-background 2dup YELLOW draw-pixel
end-drawing
] until close-window</langsyntaxhighlight>
 
=={{header|FreeBASIC}}==
<langsyntaxhighlight lang="freebasic">' version 04-07-2018
' compile with: fbc -s console
' or: fbc -s gui
Line 125 ⟶ 219:
WindowTitle "0, 0 is top left, pixel is at " & x & ", " & y & " hit any key to end program"
Sleep
End</langsyntaxhighlight>
 
=={{header|Go}}==
<langsyntaxhighlight lang="go">package main
 
import (
Line 166 ⟶ 260:
}
}
}</langsyntaxhighlight>
 
{{out}}
Line 174 ⟶ 268:
</pre>
 
=={{header|J}}==
See also [[Draw_a_pixel#J|Draw a pixel]]. Note that this pixel will be nearly invisible on most screens. There's very low contrast between yellow and white, and single pixels may be difficult to see on "modern" hardware. Remedying these visual problems would require going outside the requirements of the task. You might change the color, for example to black with <code>glrgb 0 0 0</code> and/or changing the radius to include more pixels, for example 8 with <code>glpen 8 1</code><syntaxhighlight lang="j">require 'gl2'
coinsert 'jgl2'
wd{{)n pc Rosetta closeok;cc task isidraw; set task wh 640 480;pshow}}
glpaint glpixel ?640 480 [ glpen 1 1 [ glrgb 255 255 0 [ glclear ''</syntaxhighlight>
=={{header|javascript}}==
<langsyntaxhighlight lang="javascript">let w = window.open("", "", "width=640,height=480");
let canvas = document.createElement("canvas");
canvas.width = 640;
Line 186 ⟶ 285:
let y = Math.random() * 481;
ctx.fillRect(x, y, 1, 1);
</syntaxhighlight>
</lang>
 
=={{header|Julia}}==
<langsyntaxhighlight lang="julia">using Gtk, Graphics
 
const can = @GtkCanvas()
Line 211 ⟶ 310:
signal_connect(endit, win, :destroy)
wait(cond)
</syntaxhighlight>
</lang>
 
=={{header|Kotlin}}==
This is a variation of the [[Draw a pixel]] task and so therefore is the code to accomplish it.
<langsyntaxhighlight lang="scala">// Version 1.2.41
 
import java.awt.Color
Line 253 ⟶ 352:
}
}
}</langsyntaxhighlight>
 
{{output}}
Line 260 ⟶ 359:
The color of the pixel at (296, 15) is yellow
</pre>
 
=={{header|Nim}}==
{{libheader|SDL2}}
<syntaxhighlight lang="nim">import random
import sdl2
 
discard sdl2.init(INIT_EVERYTHING)
 
let window = createWindow("Pixel", 300, 300, 640, 480, SDL_WINDOW_SHOWN)
let renderer = createRenderer(window, -1, Renderer_Accelerated)
 
randomize()
renderer.clear()
renderer.setDrawColor((255u8, 255u8, 0u8, 0u8))
let x = rand(639)
let y = rand(479)
renderer.drawPoint(x.cint, y.cint)
renderer.present()
 
delay(5000)</syntaxhighlight>
 
=={{header|Objeck}}==
<syntaxhighlight lang="objeck">use Game.SDL2;
use Game.Framework;
 
class DrawPixel {
@framework : GameFramework;
function : Main(args : String[]) ~ Nil {
DrawPixel->New()->Run();
}
New() {
@framework := GameFramework->New(640, 480, "RGB");
@framework->SetClearColor(Color->New(0, 0, 0));
}
 
method : Run() ~ Nil {
if(@framework->IsOk()) {
e := @framework->GetEvent();
x := Int->Random(640);
y := Int->Random(480);
quit := false;
while(<>quit) {
@framework->FrameStart();
@framework->Clear();
 
# process input
while(e->Poll() <> 0) {
if(e->GetType() = EventType->SDL_QUIT) {
quit := true;
};
};
@framework->GetRenderer()->SetDrawColor(255, 255, 0, 0);
@framework->GetRenderer()->DrawPoint(x, y);
 
@framework->Show();
@framework->FrameEnd();
};
}
else {
"--- Error Initializing Game Environment ---"->ErrorLine();
return;
};
 
leaving {
@framework->Quit();
};
}
}</syntaxhighlight>
 
=={{header|Perl}}==
{{libheader|Gtk3}}
<langsyntaxhighlight lang="perl">use Gtk3 '-init';
 
my $width = 640;
Line 288 ⟶ 460:
$cr->rectangle( int rand $width , int rand $height, 1, 1);
$cr->stroke;
}</langsyntaxhighlight>
 
=={{header|Phix}}==
{{libheader|Phix/pGUI}}
Pixel jumps around randomly, twice a second.
Resize the window to see the pixel jumping about.
<!--<syntaxhighlight lang="phix">(phixonline)-->
<lang Phix>include pGUI.e
<span style="color: #000080;font-style:italic;">--
 
-- demo\rosetta\Draw_pixel_2.exw
Ihandle dlg, canvas
--</span>
cdCanvas cddbuffer, cdcanvas
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
 
<span style="color: #008080;">include</span> <span style="color: #000000;">pGUI</span><span style="color: #0000FF;">.</span><span style="color: #000000;">e</span>
function redraw_cb(Ihandle /*ih*/, integer /*posx*/, integer /*posy*/)
atom {w,h} = IupGetIntInt(canvas, "DRAWSIZE")
<span style="color: #004080;">Ihandle</span> <span style="color: #000000;">dlg</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">canvas</span>
cdCanvasActivate(cddbuffer)
<span style="color: #004080;">cdCanvas</span> <span style="color: #000000;">cddbuffer</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">cdcanvas</span>
cdCanvasClear(cddbuffer)
cdCanvasPixel(cddbuffer, rand(w), rand(h), CD_YELLOW)
<span style="color: #008080;">function</span> <span style="color: #000000;">redraw_cb</span><span style="color: #0000FF;">(</span><span style="color: #004080;">Ihandle</span> <span style="color: #000080;font-style:italic;">/*ih*/</span><span style="color: #0000FF;">)</span>
cdCanvasFlush(cddbuffer)
<span style="color: #004080;">atom</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">w</span><span style="color: #0000FF;">,</span><span style="color: #000000;">h</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupGetIntInt</span><span style="color: #0000FF;">(</span><span style="color: #000000;">canvas</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"DRAWSIZE"</span><span style="color: #0000FF;">)</span>
return IUP_DEFAULT
<span style="color: #7060A8;">cdCanvasActivate</span><span style="color: #0000FF;">(</span><span style="color: #000000;">cddbuffer</span><span style="color: #0000FF;">)</span>
end function
<span style="color: #7060A8;">cdCanvasClear</span><span style="color: #0000FF;">(</span><span style="color: #000000;">cddbuffer</span><span style="color: #0000FF;">)</span>
<span style="color: #7060A8;">cdCanvasPixel</span><span style="color: #0000FF;">(</span><span style="color: #000000;">cddbuffer</span><span style="color: #0000FF;">,</span> <span style="color: #7060A8;">rand</span><span style="color: #0000FF;">(</span><span style="color: #000000;">w</span><span style="color: #0000FF;">),</span> <span style="color: #7060A8;">rand</span><span style="color: #0000FF;">(</span><span style="color: #000000;">h</span><span style="color: #0000FF;">),</span> <span style="color: #004600;">CD_YELLOW</span><span style="color: #0000FF;">)</span>
<span style="color: #7060A8;">cdCanvasFlush</span><span style="color: #0000FF;">(</span><span style="color: #000000;">cddbuffer</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">return</span> <span style="color: #004600;">IUP_DEFAULT</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">map_cb</span><span style="color: #0000FF;">(</span><span style="color: #004080;">Ihandle</span> <span style="color: #000000;">ih</span><span style="color: #0000FF;">)</span>
<span style="color: #000000;">cdcanvas</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">cdCreateCanvas</span><span style="color: #0000FF;">(</span><span style="color: #004600;">CD_IUP</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">ih</span><span style="color: #0000FF;">)</span>
<span style="color: #000000;">cddbuffer</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">cdCreateCanvas</span><span style="color: #0000FF;">(</span><span style="color: #004600;">CD_DBUFFER</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">cdcanvas</span><span style="color: #0000FF;">)</span>
<span style="color: #7060A8;">cdCanvasSetBackground</span><span style="color: #0000FF;">(</span><span style="color: #000000;">cddbuffer</span><span style="color: #0000FF;">,</span> <span style="color: #004600;">CD_BLACK</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">return</span> <span style="color: #004600;">IUP_DEFAULT</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">timer_cb</span><span style="color: #0000FF;">(</span><span style="color: #004080;">Ihandle</span> <span style="color: #000080;font-style:italic;">/*ih*/</span><span style="color: #0000FF;">)</span>
<span style="color: #7060A8;">IupUpdate</span><span style="color: #0000FF;">(</span><span style="color: #000000;">canvas</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">return</span> <span style="color: #004600;">IUP_IGNORE</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #008080;">procedure</span> <span style="color: #000000;">main</span><span style="color: #0000FF;">()</span>
<span style="color: #7060A8;">IupOpen</span><span style="color: #0000FF;">()</span>
<span style="color: #000000;">canvas</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupCanvas</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"RASTERSIZE=240x250"</span><span style="color: #0000FF;">)</span>
<span style="color: #7060A8;">IupSetCallbacks</span><span style="color: #0000FF;">(</span><span style="color: #000000;">canvas</span><span style="color: #0000FF;">,</span> <span style="color: #0000FF;">{</span><span style="color: #008000;">"MAP_CB"</span><span style="color: #0000FF;">,</span> <span style="color: #7060A8;">Icallback</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"map_cb"</span><span style="color: #0000FF;">),</span>
<span style="color: #008000;">"ACTION"</span><span style="color: #0000FF;">,</span> <span style="color: #7060A8;">Icallback</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"redraw_cb"</span><span style="color: #0000FF;">)})</span>
<span style="color: #000000;">dlg</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupDialog</span><span style="color: #0000FF;">(</span><span style="color: #000000;">canvas</span><span style="color: #0000FF;">,</span><span style="color: #008000;">`TITLE="Draw pixel"`</span><span style="color: #0000FF;">)</span>
<span style="color: #7060A8;">IupShow</span><span style="color: #0000FF;">(</span><span style="color: #000000;">dlg</span><span style="color: #0000FF;">)</span>
<span style="color: #7060A8;">IupSetAttribute</span><span style="color: #0000FF;">(</span><span style="color: #000000;">canvas</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"RASTERSIZE"</span><span style="color: #0000FF;">,</span> <span style="color: #004600;">NULL</span><span style="color: #0000FF;">)</span>
<span style="color: #004080;">Ihandle</span> <span style="color: #000000;">timer</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">IupTimer</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">Icallback</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"timer_cb"</span><span style="color: #0000FF;">),</span> <span style="color: #000000;">500</span><span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- (2 fps)</span>
<span style="color: #008080;">if</span> <span style="color: #7060A8;">platform</span><span style="color: #0000FF;">()!=</span><span style="color: #004600;">JS</span> <span style="color: #008080;">then</span>
<span style="color: #7060A8;">IupMainLoop</span><span style="color: #0000FF;">()</span>
<span style="color: #7060A8;">IupClose</span><span style="color: #0000FF;">()</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
<span style="color: #000000;">main</span><span style="color: #0000FF;">()</span>
<!--</syntaxhighlight>-->
 
=={{header|Processing}}==
function map_cb(Ihandle ih)
<syntaxhighlight lang="java">
cdcanvas = cdCreateCanvas(CD_IUP, ih)
//Aamrun, 26th June 2022
cddbuffer = cdCreateCanvas(CD_DBUFFER, cdcanvas)
cdCanvasSetBackground(cddbuffer, CD_BLACK)
return IUP_DEFAULT
end function
 
size(640,480);
procedure main()
IupOpen()
 
stroke(#ffff00);
canvas = IupCanvas(NULL)
IupSetAttribute(canvas, "RASTERSIZE", "240x50")
IupSetCallback(canvas, "MAP_CB", Icallback("map_cb"))
IupSetCallback(canvas, "ACTION", Icallback("redraw_cb"))
 
ellipse(random(640),random(480),1,1);
dlg = IupDialog(canvas)
</syntaxhighlight>
IupSetAttribute(dlg, "TITLE", "Draw pixel")
IupCloseOnEscape(dlg)
 
=={{header|Python}}==
IupShow(dlg)
{{works with|Python|2.7}}
IupSetAttribute(canvas, "RASTERSIZE", NULL)
{{libheader|Tkinter}}
IupMainLoop()
{{libheader|random}}
IupClose()
<syntaxhighlight lang="python">import Tkinter,random
end procedure
def draw_pixel_2 ( sizex=640,sizey=480 ):
pos = random.randint( 0,sizex-1 ),random.randint( 0,sizey-1 )
root = Tkinter.Tk()
can = Tkinter.Canvas( root,width=sizex,height=sizey,bg='black' )
can.create_rectangle( pos*2,outline='yellow' )
can.pack()
root.title('press ESCAPE to quit')
root.bind('<Escape>',lambda e : root.quit())
root.mainloop()
 
draw_pixel_2()</syntaxhighlight>
main()</lang>
 
=={{header|Racket}}==
 
<langsyntaxhighlight lang="racket">#lang racket/gui
 
(define WIDTH 640)
Line 356 ⟶ 564:
(send dc draw-point (random WIDTH) (random HEIGHT)))])
 
(send frame show #t)</langsyntaxhighlight>
 
=={{header|Raku}}==
Line 363 ⟶ 571:
Coordinates of random pixel displayed in window title. To make the single pixel show up better I filled in the drawing area background with black to get better contrast.
 
<syntaxhighlight lang="raku" perl6line>use GTK::Simple;
use GTK::Simple::DrawingArea;
use Cairo;
Line 389 ⟶ 597:
 
my $ctx = $da.add-draw-handler( &rect-do );
$app.run;</langsyntaxhighlight>
 
=={{header|Ring}}==
<langsyntaxhighlight lang="ring"># Project : Draw pixel 2
 
load "guilib.ring"
Line 452 ⟶ 660:
see "green : " + mycolor.green() + nl
see "blue : " + mycolor.blue() + nl
}</langsyntaxhighlight>
Outputimage:
Line 465 ⟶ 673:
{{libheader|Scastie qualified}}
{{works with|Scala|2.13}}
<langsyntaxhighlight Scalalang="scala">import java.awt.image.BufferedImage
import java.awt.Color
import scala.language.reflectiveCalls
Line 504 ⟶ 712:
println("Tests successfully completed with no errors found.")
 
}</langsyntaxhighlight>
 
=={{header|V (Vlang)}}==
<syntaxhighlight lang="Zig">
import gg
import gx
import rand
 
const (
win_width = 640
win_height = 480
x = rand.int_in_range(1, win_width) or {exit(-1)}
y = rand.int_in_range(1, win_height) or {exit(-1)}
)
 
fn main() {
mut app := gg.new_context(
width: win_width
height: win_height
frame_fn: frame
window_title: 'Pixel 2'
)
app.run()
}
 
fn frame(mut ctx gg.Context) {
ctx.begin()
ctx.draw_pixel(x, y, gx.yellow)
ctx.end()
}
</syntaxhighlight>
 
=={{header|Wren}}==
{{libheader|DOME}}
<syntaxhighlight lang="wren">import "dome" for Window
import "graphics" for Canvas, Color
import "random" for Random
 
class Game {
static init() {
Window.title = "Draw a pixel 2"
Window.resize(320, 240)
Canvas.resize(320, 240)
var yellow = Color.rgb(255, 255, 0)
var rand = Random.new()
var randX = rand.int(320)
var randY = rand.int(240)
Canvas.pset(randX, randY, yellow)
}
 
static update() {}
 
static draw(dt) {}
 
static getRGB(col) { "{%(col.r), %(col.g), %(col.b)}" }
}</syntaxhighlight>
 
=={{header|XPL0}}==
This is all that's required on the Raspberry Pi version of XPL0.
<langsyntaxhighlight XPL0lang="xpl0">[SetFB(640, 480, 24); Point(Ran(640), Ran(480), $FFFF00)]</langsyntaxhighlight>
9,482

edits