function drawScene(time) { ctx.fillStyle = 'rgb(' + colors.base.join(',') + ')'; ctx.fillRect(0, 0, width, height); var lead = trail[0]; var middle = trail[3]; var tail = trail[6]; var leadX = lead.x - 0.5; var leadY = lead.y - 0.5; var middleX = middle.x - 0.5; var middleY = middle.y - 0.5; var tailX = tail.x - 0.5; var tailY = tail.y - 0.5; /* Мягкое розовое свечение слева */ drawBlob( -0.02 + tailX * 0.035, 0.20 + tailY * 0.025, 0.43, 0.58, -0.24, colors.rose, 0.72 ); /* Главная фиолетовая область */ drawBlob( 0.57 + middleX * 0.045, 0.38 + middleY * 0.035, 0.34 + pointerSpeed * 0.018, 0.61 + pointerSpeed * 0.018, 0.13 + pointerSpeed * 0.045, colors.violet, 0.60 ); /* Нижний фиолетовый перелив */ drawBlob( 0.72 + leadX * 0.030, 0.67 + leadY * 0.025, 0.22, 0.42, -0.16, colors.violet, 0.25 ); /* Светлая центральная зона */ drawBlob( 0.31 - middleX * 0.025, 0.88 - middleY * 0.030, 0.48, 0.45, 0.08, colors.white, 0.78 ); /* Лёгкий розовый оттенок снизу */ drawBlob( 0.76 + tailX * 0.020, 0.90 - tailY * 0.018, 0.22, 0.30, -0.18, colors.rose, 0.35 ); /* * Очень мягкая реакция на курсор. * Только два широких пятна — без кругов и резкого следа. */ if (pointerActive && !reducedMotion) { var direction = Math.atan2( lead.y - tail.y, lead.x - tail.x ); var wakeX = Math.min(0.84, lead.x); var wakeMiddleX = Math.min(0.83, middle.x); drawBlob( wakeMiddleX, middle.y, 0.19 + pointerSpeed * 0.07, 0.105, direction, colors.rose, 0.028 + pointerSpeed * 0.018 ); drawBlob( wakeX, lead.y, 0.15 + pointerSpeed * 0.055, 0.085, direction, colors.violet, 0.025 + pointerSpeed * 0.020 ); } /* * Аккуратное завершение градиента справа. * После фиолетовой области остаётся полоса базового фона. */ var rightCut = ctx.createLinearGradient( width * 0.83, 0, width, 0 ); rightCut.addColorStop(0, rgba(colors.base, 0)); rightCut.addColorStop(0.42, rgba(colors.base, 0.54)); rightCut.addColorStop(0.72, rgba(colors.base, 0.93)); rightCut.addColorStop(1, rgba(colors.base, 1)); ctx.fillStyle = rightCut; ctx.fillRect( width * 0.83, 0, width * 0.17, height ); }
Палкина Екатерина Викторовна
Врач — акушер-гинеколог

Палкина
Екатерина Викторовна

Член Ассоциации специалистов по эстетической гинекологии

Женское здоровье и эстетическая гинекология. Консультации по вопросам цикла, подготовки к беременности, контрацепции, менопаузы и интимного комфорта.

Знакомство

Познакомьтесь с врачом до приёма

Палкина Екатерина Викторовна
Врач — акушер-гинеколог

Палкина
Екатерина Викторовна

Член Ассоциации специалистов по эстетической гинекологии

Женское здоровье и эстетическая гинекология. Консультации по вопросам цикла, подготовки к беременности, контрацепции, менопаузы и интимного комфорта.

Палкина Екатерина Викторовна
Врач — акушер-гинеколог

Палкина
Екатерина Викторовна

Член Ассоциации специалистов по эстетической гинекологии

Женское здоровье и эстетическая гинекология. Консультации по вопросам цикла, подготовки к беременности, контрацепции, менопаузы и интимного комфорта.

Палкина Екатерина Викторовна
Врач — акушер-гинеколог

Палкина
Екатерина Викторовна

Член Ассоциации специалистов по эстетической гинекологии

Женское здоровье и эстетическая гинекология. Консультации по вопросам цикла, подготовки к беременности, контрацепции, менопаузы и интимного комфорта.