Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C++ Pixels In Console Window

In C++ using Code::Blocks v10.05, how do I draw a single pixel on the console screen? Is this easy at all, or would it be easier to just draw a rectangle? How do I color it?

I'm sorry, but I just can't get any code from SOF, HF, or even cplusplus.com to work. This is for a Super Mario World figure on the screen. The game I think is 16-bit, and is for the SNES system. C::B says I need SDK for C::B. It says "afxwin.h" doesn't exist. Download maybe?

This is what I'm trying to make:

Image I'm trying to create

like image 221
hCon Avatar asked Sep 11 '12 22:09

hCon


People also ask

What is set pixel in computer graphics?

The SetPixel function sets the pixel at a specified x- and y-coordinate to a particular color: SetPixel (hdc, x, y, crColor) ; As in any drawing function, the first argument is a handle to a device context. The second and third arguments indicate the coordinate position.

How do you change the size of the console in C++?

Right Click on title bar of your running console application. Select Properties. Select Layout. Then set the window size.


1 Answers

It depends on your OS. I suppose you are programming in a Windows platform, therefore you can use SetPixel but you have to use "windows.h" to get a console handle, so here an example for drawing the cos() function:

#include<windows.h>
#include<iostream>
#include <cmath>

using namespace std;

#define PI 3.14

int main() 
{
    //Get a console handle
    HWND myconsole = GetConsoleWindow();
    //Get a handle to device context
    HDC mydc = GetDC(myconsole);

    int pixel =0;

    //Choose any color
    COLORREF COLOR= RGB(255,255,255); 

    //Draw pixels
    for(double i = 0; i < PI * 4; i += 0.05)
    {
        SetPixel(mydc,pixel,(int)(50+25*cos(i)),COLOR);
        pixel+=1;
    }

    ReleaseDC(myconsole, mydc);
    cin.ignore();
    return 0;
}

You can also use some others libraries like: conio.h allegro.h sdl, etc.

like image 109
FacundoGFlores Avatar answered Oct 06 '22 23:10

FacundoGFlores