Я всегда изо всех сил пытался найти способ нарисовать линию в консоли C ++. Я имею в виду, я знаю, что это невозможно, но я подумал о том, как нарисовать его, что моя тетя объяснила мне способом вычисления координат различных точек на линии.
формула имеет вид: Y = + (((by-ay) / (bx-ax)) * (x-ax));
У нас есть две точки a и b с их координатами.
Между этими двумя точками есть линия.
С выбранным x вы можете найти эквивалентный y на линии, так что вы можете увеличить значение x, чтобы нарисовать линию.
Вот код (извините за мой английский, но это не мой родной язык):
#include <iostream>
#include <Windows.h>
int ax, ay, bx, by;
using std::cout;
void gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}
void rectline()
{
}
void line()
{
if (ax == bx || by == ay)
{
rectline();
}
else
{
for (int x = ax; x < bx; x++)
{
int y = by + (((by - ay) / (bx - ax))*(x-ax));
gotoxy(x, y); cout << "#";
}}
}int main()
{
ax = 8;
ay = 6;
bx = 20;
by = 10;while (1)
{
gotoxy(ax, ay); cout << "#";
gotoxy(bx, by); cout << "#";
line();
Sleep(100);
}return 0;
}
Я надеюсь, что вы можете мне помочь.
если что-то не понятно, просто скажите мне, и я сделаю все возможное, чтобы объяснить это вам.
Выход:
Задача ещё не решена.
Других решений пока нет …