C/C++

В чем данной смысл строки в c++?

смотрел туториал по 3д в консоли от онигири
и вот я не понял как работает движение круга
 #include  

using namespace std;
int main()
{
int width = 120;
int height = 30;
float aspect = (float)width / height;
float pixeAspect = (float)11.0f / 24.0f;
char* screen = new char[width * height + 1];
screen[width * height] = '\0';
for (int t = 0; t < 10000; t++)
{
for (int i = 0; i < width; i++)
{
for (int j = 0; j < height; j++)
{
char pixel = ' ';
float x = (float)i / width * 2.0f - 1.0f;
float y = (float)j / height * 2.0f - 1.0f;
x *= aspect * pixeAspect;
x += sin(t * 0.001);
if (x * x + y * y < 0.5)
pixel = '@';
screen[i + j * width] = pixel;
}
}
printf(screen);
}
getchar();
}
это код
но как работает эта строка:
x += sin(t * 0.001);

и что означает число 10000
в этой:
for (int t = 0; t < 10000; t++)
toxvar
toxvar
841
sin - скорость будет изменяться по закону синуса - отрицательная перетекает в положительную и наоборот.
0.001 - коэфициент, указывающий как быстро будет меняться эта скорость (один шаг отрисовки = 1, полный период - это 2 Пи, т.е. один полный цикл совершается за примерно 6 отрисовок. А с учетом этого коэфициента нужно около 6000 отрисовок.
10000 - количество отрисовок (кадров)
Круг рисуется путем проверки, входят ли координаты текущего символа в окружность (x*x+y*y < радиус), если да - то ставится знак @ если нет - то пробел.
аспект - размер стандартного окна консоли, задается для того чтобы одна строка кадра занимала ровно весь размер консоли.
аспект пиксель - соотношение высоты и ширины одного пикселя (у консоли это примерно 1:2) нужно чтобы круг не был растянут вдоль или поперек.
ВТ
Валерий Тюфяков
51 416
Лучший ответ
Первая строка: к x присваивается x и прибавляется синус переменной t, умноженной на 0.001
Вторая строка: 10000 - число цикла (если t меньше 10000, то число t увеличивается на единицу)
toxvar а зачем синус здесь?
но как работает эта строка: x += sin(t * 0.001);

Эта строка смещает отображаемый круг относительно середины, принимаемой за 0. Другими словами, эта строка отвечает за гармонические колебания отображаемого круга по горизонтали.

Скорость задаётся коэффициентом при t. Полный цикл колебания совершается за 2π/k итераций. При k=0.001 полный цикл совершается за 6284 итерации.


что означает число 10000

Количество итераций отображения.
Андрей Кучеров
Андрей Кучеров
12 091
Предположу, что строка с синусом отвечает за скорость
А цикл - просто кол-во совершаемых итераций
SB
Salamat Beisembaevich
9 983
Salamat Beisembaevich точнее умножение в строке с синусом
toxvar а зачем синус здесь?
Шаг скорее всего
toxvar я спросил как именно работает, а что делает я знаю