Le palpebre del risveglio di nuovo sfumate, senza filtri: sedici passate trasparenti che sporgono verso l'occhio aperto (Andrea)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T
This commit is contained in:
@@ -70,8 +70,9 @@ export function drawRisveglio(ctx, c, bg) {
|
|||||||
v.addColorStop(1, `rgba(10,2,4,${0.85 * (1 - open * 0.75) * Math.max(h, 0.3)})`);
|
v.addColorStop(1, `rgba(10,2,4,${0.85 * (1 - open * 0.75) * Math.max(h, 0.3)})`);
|
||||||
ctx.fillStyle = v;
|
ctx.fillStyle = v;
|
||||||
ctx.fillRect(0, 0, W, H);
|
ctx.fillRect(0, 0, W, H);
|
||||||
// Le palpebre: sopra e sotto, col bordo curvo; il bordo morbido sono quattro passate sempre più chiuse e più
|
// Le palpebre: sopra e sotto, col bordo curvo. Il bordo morbido (prima era una sfocatura, che rallentava tutto)
|
||||||
// scure. Chiuse, si vede il rosso scuro della luce che passa.
|
// sono tante passate trasparenti che sporgono verso l'occhio aperto, un pixel di più l'una: sovrapponendosi
|
||||||
|
// scuriscono piano verso la palpebra piena. Chiuse, si vede il rosso scuro della luce che passa.
|
||||||
if (open < 0.999) {
|
if (open < 0.999) {
|
||||||
const mid = H / 2, lid = (gap, bulge, sign) => {
|
const mid = H / 2, lid = (gap, bulge, sign) => {
|
||||||
const edge = mid + sign * gap, side = edge - sign * bulge, far = sign < 0 ? -20 : H + 20;
|
const edge = mid + sign * gap, side = edge - sign * bulge, far = sign < 0 ? -20 : H + 20;
|
||||||
@@ -80,11 +81,11 @@ export function drawRisveglio(ctx, c, bg) {
|
|||||||
ctx.quadraticCurveTo(W / 2, edge * 2 - side, -20, side);
|
ctx.quadraticCurveTo(W / 2, edge * 2 - side, -20, side);
|
||||||
ctx.closePath(); ctx.fill();
|
ctx.closePath(); ctx.fill();
|
||||||
};
|
};
|
||||||
for (let i = 0; i < 4; i++) {
|
const SOFT = 16, bulge = 70 + 60 * open;
|
||||||
const gap = 200 * open + (3 - i) * 4, bulge = 70 + 60 * open;
|
ctx.fillStyle = 'rgba(22,4,6,0.11)';
|
||||||
ctx.fillStyle = `rgba(22,4,6,${i === 3 ? 1 : 0.3})`;
|
for (let i = SOFT; i > 0; i--) { lid(200 * open - i, bulge, -1); lid(200 * open - i, bulge, 1); }
|
||||||
lid(gap, bulge, -1); lid(gap, bulge, 1);
|
ctx.fillStyle = 'rgb(22,4,6)';
|
||||||
}
|
lid(200 * open, bulge, -1); lid(200 * open, bulge, 1);
|
||||||
}
|
}
|
||||||
ctx.restore();
|
ctx.restore();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user