<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Pasja Informatyki - Najnowsze z tagiem setpixel</title>
<link>https://forum.pasja-informatyki.pl/tag/setpixel</link>
<description>Powered by Question2Answer</description>
<item>
<title>Program wywołuje sekcje case WM_PAINT bez użycia WindowUpdate()</title>
<link>https://forum.pasja-informatyki.pl/568801/program-wywoluje-sekcje-case-wm_paint-bez-uzycia-windowupdate</link>
<description>Witam, problem polega na tym, że napisałem program, który powinien działać następująco:&lt;br /&gt;
&lt;br /&gt;
- Użytkownik klika guzik uruchamiając instrukcje WM_COMMAND, sekcja ta zawiera instrukcje UpdateWindow(hwnd).&lt;br /&gt;
- Funkcja UpdateWindow() uruchamia WM_PAINT, w której jest instrukcja SetPixel(). &lt;br /&gt;
- WM_PAINT ustawia wartość danego piksela.&lt;br /&gt;
&lt;br /&gt;
Problem polega na tym, że piksel jest ustawiany już po uruchomieniu programu, użytkownik nie klika guzika, by zmienić wartość piksela. Nawet, gdy usunę UpdateWindow() z całego programu W_PAINT dalej działa zmienia wartość piksela.</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/568801/program-wywoluje-sekcje-case-wm_paint-bez-uzycia-windowupdate</guid>
<pubDate>Mon, 27 Jun 2022 12:09:45 +0000</pubDate>
</item>
<item>
<title>Zmiana wartości piksela, SetPixel()</title>
<link>https://forum.pasja-informatyki.pl/568198/zmiana-wartosci-piksela-setpixel</link>
<description>

&lt;p&gt;Witam, próbuje zrobić, by program pomalował piksel. Niestety nie wiem co poszło nie tak, bo cały czas nie działa.&lt;/p&gt;



&lt;p&gt;Oto mój kod:&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;windows.h&amp;gt;
#include &amp;lt;shellapi.h&amp;gt;
/* This is where all the input to the window goes to */
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
	switch(Message) {
		
		/* Upon destruction, tell the main thread to stop */
		case WM_DESTROY: {
			PostQuitMessage(0);
			break;
		}
		
		case WM_PAINT: {
			HDC hdcDesktop = GetDC(hwnd);
			HDC hdc = CreateCompatibleDC(hdcDesktop);
			SetPixel(hdc, 20, 20, RGB(255,0,0));
			ReleaseDC(hwnd, hdc);
			break;
		}
		
		/* All other messages (a lot of them) are processed using default procedures */
		default:
			return DefWindowProc(hwnd, Message, wParam, lParam);
	}
	return 0;
}

/* The 'main' function of Win32 GUI programs: this is where execution starts */
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
	WNDCLASSEX wc; /* A properties struct of our window */
	HWND hwnd; /* A 'HANDLE', hence the H, or a pointer to our window */
	MSG msg; /* A temporary location for all messages */

	/* zero out the struct and set the stuff we want to modify */
	memset(&amp;amp;wc,0,sizeof(wc));
	wc.cbSize		 = sizeof(WNDCLASSEX);
	wc.lpfnWndProc	 = WndProc; /* This is where we will send messages to */
	wc.hInstance	 = hInstance;
	wc.hCursor		 = LoadCursor(NULL, IDC_ARROW);
	
	/* White, COLOR_WINDOW is just a #define for a system color, try Ctrl+Clicking it */
	wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
	wc.lpszClassName = &quot;WindowClass&quot;;
	wc.hIcon		 = LoadIcon(NULL, IDI_APPLICATION); /* Load a standard icon */
	wc.hIconSm		 = LoadIcon(NULL, IDI_APPLICATION); /* use the name &quot;A&quot; to use the project icon */

	if(!RegisterClassEx(&amp;amp;wc)) {
		MessageBox(NULL, &quot;Window Registration Failed!&quot;,&quot;Error!&quot;,MB_ICONEXCLAMATION|MB_OK);
		return 0;
	}

	hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,&quot;WindowClass&quot;,&quot;Caption&quot;,WS_VISIBLE|WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT, /* x */
		CW_USEDEFAULT, /* y */
		640, /* width */
		480, /* height */
		NULL,NULL,hInstance,NULL);
		
	UpdateWindow(hwnd);
	
	if(hwnd == NULL) {
		MessageBox(NULL, &quot;Window Creation Failed!&quot;,&quot;Error!&quot;,MB_ICONEXCLAMATION|MB_OK);
		return 0;
	}

	/*
		This is the heart of our program where all input is processed and 
		sent to WndProc. Note that GetMessage blocks code flow until it receives something, so
		this loop will not produce unreasonably high CPU usage
	*/
	while(GetMessage(&amp;amp;msg, NULL, 0, 0) &amp;gt; 0) { /* If no error is received... */
		TranslateMessage(&amp;amp;msg); /* Translate key codes to chars if present */
		DispatchMessage(&amp;amp;msg); /* Send it to WndProc */
	}
	return msg.wParam;
}
&lt;/pre&gt;



&lt;p&gt;Bardzo proszę o pomoc.&amp;nbsp;&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/568198/zmiana-wartosci-piksela-setpixel</guid>
<pubDate>Wed, 15 Jun 2022 13:16:32 +0000</pubDate>
</item>
<item>
<title>Zmiana koloru piksela za pomocą setPxiel().</title>
<link>https://forum.pasja-informatyki.pl/568191/zmiana-koloru-piksela-za-pomoca-setpxiel</link>
<description>

&lt;p&gt;Witam, napisałem kod w c++, który powinien zmienić wartość piksela o współrzędnych x=20px i y=20px na kolor czerwony z domyślnego białego. Program nie generuje żadnych błędów ale mimo to piksel nie zmienia koloru.&lt;/p&gt;



&lt;p&gt;To fragment kodu, który odpowiada za zmianę koloru:&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
HDC hdcDesktop = GetDC(hwnd);
HDC hdc = CreateCompatibleDC(hdcDesktop);
SetPixel(hdc, 20, 20, RGB(255,0,0));
ReleaseDC(hwnd, hdc);&lt;/pre&gt;



&lt;p&gt;A to cały kod:&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &amp;lt;windows.h&amp;gt;
#include &amp;lt;shellapi.h&amp;gt;
/* This is where all the input to the window goes to */
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
	switch(Message) {
		
		/* Upon destruction, tell the main thread to stop */
		case WM_DESTROY: {
			PostQuitMessage(0);
			break;
		}
		
		/* All other messages (a lot of them) are processed using default procedures */
		default:
			return DefWindowProc(hwnd, Message, wParam, lParam);
	}
	return 0;
}

/* The 'main' function of Win32 GUI programs: this is where execution starts */
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
	WNDCLASSEX wc; /* A properties struct of our window */
	HWND hwnd; /* A 'HANDLE', hence the H, or a pointer to our window */
	MSG msg; /* A temporary location for all messages */

	/* zero out the struct and set the stuff we want to modify */
	memset(&amp;amp;wc,0,sizeof(wc));
	wc.cbSize		 = sizeof(WNDCLASSEX);
	wc.lpfnWndProc	 = WndProc; /* This is where we will send messages to */
	wc.hInstance	 = hInstance;
	wc.hCursor		 = LoadCursor(NULL, IDC_ARROW);
	
	/* White, COLOR_WINDOW is just a #define for a system color, try Ctrl+Clicking it */
	wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
	wc.lpszClassName = &quot;WindowClass&quot;;
	wc.hIcon		 = LoadIcon(NULL, IDI_APPLICATION); /* Load a standard icon */
	wc.hIconSm		 = LoadIcon(NULL, IDI_APPLICATION); /* use the name &quot;A&quot; to use the project icon */

	if(!RegisterClassEx(&amp;amp;wc)) {
		MessageBox(NULL, &quot;Window Registration Failed!&quot;,&quot;Error!&quot;,MB_ICONEXCLAMATION|MB_OK);
		return 0;
	}

	hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,&quot;WindowClass&quot;,&quot;Caption&quot;,WS_VISIBLE|WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT, /* x */
		CW_USEDEFAULT, /* y */
		640, /* width */
		480, /* height */
		NULL,NULL,hInstance,NULL);

	HDC hdcDesktop = GetDC(hwnd);
	HDC hdc = CreateCompatibleDC(hdcDesktop);
	SetPixel(hdc, 20, 20, RGB(255,0,0));
	ReleaseDC(hwnd, hdc);

	if(hwnd == NULL) {
		MessageBox(NULL, &quot;Window Creation Failed!&quot;,&quot;Error!&quot;,MB_ICONEXCLAMATION|MB_OK);
		return 0;
	}

	/*
		This is the heart of our program where all input is processed and 
		sent to WndProc. Note that GetMessage blocks code flow until it receives something, so
		this loop will not produce unreasonably high CPU usage
	*/
	while(GetMessage(&amp;amp;msg, NULL, 0, 0) &amp;gt; 0) { /* If no error is received... */
		TranslateMessage(&amp;amp;msg); /* Translate key codes to chars if present */
		DispatchMessage(&amp;amp;msg); /* Send it to WndProc */
	}
	return msg.wParam;
}
&lt;/pre&gt;



&lt;p&gt;Całość jest w winAPI. Mogą być również alternatywy dla funkcji setPixel().&lt;/p&gt;



&lt;p&gt;Z góry dziękuję za odpowiedź.&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/568191/zmiana-koloru-piksela-za-pomoca-setpxiel</guid>
<pubDate>Wed, 15 Jun 2022 11:47:32 +0000</pubDate>
</item>
<item>
<title>Brak pomysłu na algorytm zapalający pojedynczy piksel na ekranie</title>
<link>https://forum.pasja-informatyki.pl/518415/brak-pomyslu-na-algorytm-zapalajacy-pojedynczy-piksel-na-ekranie</link>
<description>

&lt;p&gt;Witam,&lt;/p&gt;



&lt;p&gt;Od paru godzin męczę się z napisaniem procedury&amp;nbsp;wyświetlającej&amp;nbsp;piksel.&lt;/p&gt;



&lt;p&gt;Tryb graficzny to&amp;nbsp;640 × 400 x 2 kolory (czarny i biały).&lt;/p&gt;



&lt;p&gt;Piksel w pamięci ekranu to jeden bit (1 - kolor czarny, 0 - kolor biały). Bity są obok siebie, liniowo.&lt;/p&gt;



&lt;p&gt;Nie mam pojęcia jak zapalić pojedynczy bit, gdyż najmniejsza porcja danych to bajt.&lt;/p&gt;



&lt;p&gt;Obecnie mam taki kod:&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
void put_pixel(u16 x, u16 y, u8 *screen)
{
	u16 bitOffset = (y * 640) + x;
	screen[bitOffset] |= (1 &amp;gt;&amp;gt; 7);
}

put_pixel(0, 0, screen);
put_pixel(1, 0, screen);
put_pixel(2, 0, screen);&lt;/pre&gt;



&lt;p&gt;Ale wyświetla mi 3 piksele oddalone od siebie o 8 punktów, co jest rzeczą oczywistą, bo offset to 1 bajt.&lt;/p&gt;



&lt;p&gt;Nie mam pojęcia jak się dobrać do pojedynczego bitu, tak aby kolejny offset był kolejnym sąsiednim bitem.&lt;/p&gt;



&lt;p&gt;C++ nie wchodzi w grę.&lt;/p&gt;



&lt;p&gt;Nie mam pomysłu...&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/518415/brak-pomyslu-na-algorytm-zapalajacy-pojedynczy-piksel-na-ekranie</guid>
<pubDate>Wed, 25 Nov 2020 13:33:43 +0000</pubDate>
</item>
<item>
<title>Problem z działaniem funkcjii setpixel</title>
<link>https://forum.pasja-informatyki.pl/319216/problem-z-dzialaniem-funkcjii-setpixel</link>
<description>

&lt;p&gt;Witam, w projekcie na studiach muszę zrobić wczytywanie danych z pliku i rysowanie wykresu w konsolii. Jest to mój pierwszy kontakt z rysowaniem linii. Wczytywanie do tablicy mi działa,tylko dalej nie wiem co tam się dzieje i czemu to nie działa. Dane są z przedziału x=&amp;lt;0;1,570796&amp;gt; y=&amp;lt;1,000000;-0,998795&amp;gt;&lt;/p&gt;



&lt;pre class=&quot;brush:cpp;&quot;&gt;
#include &quot;stdafx.h&quot;
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;fstream&amp;gt;
#include&amp;lt;windows.h&amp;gt;
#include&amp;lt;conio.h&amp;gt;
using namespace std;
float liczba[64][2];
int main()
{
	ifstream plik;
	plik.open(&quot;Zad_B2.txt&quot;, ios::in);
	if (plik.good() == true)
	{
		for (int i = 0; i &amp;lt; 63; i++)
		{
			for (int j = 0; j &amp;lt; 2; j++)
			{
				plik &amp;gt;&amp;gt; liczba[i][j];
			}
		}
		plik.close();
		HWND myconsole = GetConsoleWindow();
		HDC mydc = GetDC(myconsole);
		int pixel = 0;
		COLORREF COLOR = RGB(255, 255, 0);
		for (int i = 0; i &amp;lt; 63; i += 1)
		{
		SetPixel(mydc, liczba[i][1], liczba[i][2], COLOR); //pixel w miejscu o współrzędnych. Nie działa
		}
		
	}
	return 0;
}
&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/319216/problem-z-dzialaniem-funkcjii-setpixel</guid>
<pubDate>Tue, 16 Jan 2018 22:11:55 +0000</pubDate>
</item>
<item>
<title>W jaki sposób ustawić lub pobrać dany piksel na ekranie podczas gdy jesteśmy w grze 3d.</title>
<link>https://forum.pasja-informatyki.pl/161783/w-jaki-sposob-ustawic-lub-pobrac-dany-piksel-na-ekranie-podczas-gdy-jestesmy-grze-3d</link>
<description>Cześć,&lt;br /&gt;
&lt;br /&gt;
Chcę napisać program, który wyświetla mi najważniejsze komendy do infinite ammo itp... na boczku żeby tego nie szukać, bo dużo tych komend używam jak się bawię. Jest jakiś sposób żeby wyświetlać tekst, albo chociaż piksele w takim cs go? Próbowałem z setPixel z winapi, ale nie działa po za trybem 2d. :/</description>
<category>Nasze projekty</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/161783/w-jaki-sposob-ustawic-lub-pobrac-dany-piksel-na-ekranie-podczas-gdy-jestesmy-grze-3d</guid>
<pubDate>Mon, 25 Jul 2016 21:49:48 +0000</pubDate>
</item>
</channel>
</rss>