Forever
Мастер
(2219)
1 месяц назад
void setup() {
size(400, 400);
frameRate(2);
}
void draw() {
background(255);
float scaleFactor = 1 + sin(frameCount * 0.5) * 0.5;
// Большой квадрат (начало [100, 100], размер 200)
float bigSide = 200 * scaleFactor;
float bigX = 200 - bigSide / 2;
float bigY = 200 - bigSide / 2;
fill(255, 0, 0);
rect(bigX, bigY, bigSide, bigSide);
// Маленький квадрат (начало [150, 150], размер 100)
float smallSide = 100 * scaleFactor;
float smallX = 200 - smallSide / 2;
float smallY = 200 - smallSide / 2;
fill(0, 0, 255);
rect(smallX, smallY, smallSide, smallSide);
}
ForeverМастер (2219)
1 месяц назад
Объяснение кода:
Параметры окна: Устанавливается размер 400x400 и частота кадров 2 FPS.
Пульсация: Масштаб (scaleFactor) изменяется по синусоиде, создавая эффект пульсации. Коэффициент 0.5 регулирует амплитуду.
Большой квадрат: Рассчитывается размер и позиция так, чтобы центр оставался в (200, 200). Начальные координаты [100, 100] достигаются при scaleFactor = 1.
Маленький квадрат: Аналогично большому, но с исходным размером 100. Центр также в (200, 200).
Код обеспечивает синхронную пульсацию квадратов от центра, сохраняя их начальные координаты при масштабировании.
Параметры окна:
Ширина: 400px
Высота: 400px
Частота смены кадров: 2
Время работы: до закрытия окна
Параметры большого квадрата:
Начало: [100, 100]
Сторона: 200 px
Параметры маленького квадрата:
Начало: [150, 150]
Сторона: 100 px