// FormaRiso: formas simples impressas em duas tintas fora de registro (sol, estrela, onda, arco, listras). Apoio discreto: estoura, gira em passos e fica respirando. import React from 'react'; import {COR, mola, seg, useF} from '../base'; export type FormaRisoProps = {nome?: 'sol' | 'estrela' | 'onda' | 'arco' | 'listras'; x?: number; y?: number; tam?: number; inicio?: number}; const Forma: React.FC<{nome: string; cor: string; modo: 'cheio' | 'reticula'}> = ({nome, cor, modo}) => { const fill = modo === 'cheio' ? cor : 'url(#ret-azul)'; switch (nome) { case 'estrela': return { const r = i % 2 ? 22 : 48, a = (i / 10) * Math.PI * 2 - Math.PI / 2; return `${50 + Math.cos(a) * r},${52 + Math.sin(a) * r}`; }).join(' ')} fill={fill} />; case 'onda': return ; case 'arco': return ; case 'listras': return <>{[0, 1, 2, 3, 4].map((i) => )}; default: return <>{Array.from({length: 12}).map((_, i) => )}; } }; export const FormaRiso: React.FC = ({nome = 'sol', x = 800, y = 360, tam = 300, inicio = 0}) => { const f = useF() - inicio; const p = mola(seg(f, 0, 12), 1.8); const reg = (1 - p) * 40 + 8; const rot = (1 - p) * -120 + Math.sin(f / 14) * 5; const camada = (cor: string, modo: 'cheio' | 'reticula', dx: number, dy: number) => ; return
{camada(COR.rosa, 'cheio', -reg, -reg * 0.6)}{camada(COR.azul, 'reticula', reg, reg * 0.6)}
; };