Кресты / Говнокод #28857 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
#include "Windows.h"
void line::draw()
{
	CmdWinGUI::draw();
	uint8_t modB = 0; //modeByte
	COORD tempSt = lineStart;
	COORD tempEn = lineEnd;
	SHORT dX = abs(lineEnd.X - lineStart.X);
	SHORT dY = abs(lineEnd.Y - lineStart.Y);
	SHORT sX = lineStart.X < lineEnd.X ? 1 : -1;
	SHORT sY = lineStart.Y < lineEnd.Y ? 1 : -1;
	SHORT dErr = dX - dY;
	SHORT dErr2 = 0;
	if (scan)
	{
		SetConsoleCursorPosition(hCon, lineStart);
		for (uint8_t a = 0;a <= lineEnd.X-lineStart.X;++a)
		{
			modB = lineAtrBuffer[a];
			SetConsoleTextAttribute(hCon, modB);
			printf("%c", lineSymBuffer[a]);
		}
		if (isChanged)
			this->editFlagSwitch();
		return;
	}
	for (;;)
	{
		SetConsoleCursorPosition(hCon, tempSt);
		printf("%c", lineSym);
		if (tempSt.X == tempEn.X&&tempSt.Y == tempEn.Y)
			break;
		dErr2 = dErr * 2;
		if (dErr2 > -dY)
		{
			dErr -= dY;
			tempSt.X += sX;
		}
		if (dErr2 < dX)
		{
			dErr += dX;
			tempSt.Y += sY;
		}
	}
	if (isChanged)
		this->editFlagSwitch();
}

Отрисовка произвольной графической линии в консоли

Запостил: siclown siclown, (Updated )

Комментарии (1) RSS

  • кому и зачем может понадобицца рисовать в консольи?
    Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8