konsola tryb graficzny

konsola tryb graficzny
wilkwielki
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 683
0

mam taki kod:

Kopiuj
class DrawConsole
{
public:
	HWND myconsole;
    HDC mydc;
	COLORREF COLOR;
	void Init()
	{
		myconsole = GetConsoleWindow();
		mydc = GetDC(myconsole);
	}
	void Color3i(int r,int g,int b)
	{
		COLOR= RGB(r,g,b);
	}
	void PutPixel(int x,int y)
	{
		SetPixel(mydc, x, y, COLOR);
	}
	void PutLine(int xs,int ys,int xe,int ye)
	{
		
	}
	void unLoad()
	{
		ReleaseDC(myconsole, mydc);
	}
};

int main(int argc, char* argv[])
{

	  DrawConsole draw;
	  draw.Init();
	  draw.Color3i(0,255,0);
	for(float w=0;w<100;w+=0.001)
	draw.PutPixel(w,100);
	
    draw.PutLine(10,10,100,10);
	draw.unLoad();
	do{}
	while(kbhit()!=true);
  }

jak narysować kreskę czyli linie funkcją PutLine xstart, ystart , xkoniec, ykoniec
tu chyba matma wchodzi jakiś może wzór matematyczny
bo poziomą czy pionową jeszcze mozna recznie dopisac ale np po u kosie?

obscurity
  • Rejestracja: dni
  • Ostatnio: dni
wilkwielki
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 683
0

dziękuje

wilkwielki
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 683
0

void Box2d(int xs,int ys,int xe,int ye)
{

	 for(int xp=xs;xp<xe;xp+=1)
	 {
		 PutLine(xp,ys,xp,ye);
	 }
 }


draw.Color3i(0,255,0);
draw.Box2d(0,20,100,50);
draw.Color3i(255,0,0);
draw.Box2d(100,20,200,50);

progress bar w połowie skonczony :)
wilkwielki
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 683
0

jaka jest prędkość rysowania tego systemu w mili sekundach bo cout zajmuje 32 mili sekundy tzn 1/30 sekudy
edit: mam progress bar

 void ProgressBar(int percent)
 {
	Color3i(0,255,0);
	Box2d(0,20,percent*2,50);
	Color3i(255,0,0);
	Box2d(percent*2,20,200,50);
 }

  draw.ProgressBar(50);
wilkwielki
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 683
0

zmontowałem opcje wczytywania plików bmp , bajer na maksa , tutaj projekt
ikona2d.rar

szkoda ze tak wolno rysuje, przydała by się jakaś akceleracja sprzętowa tzn odwołanie do sterownika a to do procesora graficznego tak jak jest np w OpenGl

Manna5
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 667
0
obscurity napisał(a):

https://pl.wikipedia.org/wiki/Algorytm_Bresenhama

No można ręcznie użyć algorytmu, ale program z pierwszego postu wygląda jakby używał WinAPI, a wśród funkcji rysujących WinAPI jest gotowa funkcja LineTo rysująca odcinek.

wilkwielki
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 683
0

ja zamiast nazwy BresenhamLine zmieniłem ją na PutLine i działa rysuje odcinki

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.