;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Como funciona a ilusão de ótica com números que bombou nas redes sociais

Nem todas as pessoas conseguem enxergar cada algarismo presente nesta imagem. - Reprodução
Nem todas as pessoas conseguem enxergar cada algarismo presente nesta imagem. Imagem: Reprodução

Do UOL, em São Paulo

21/02/2022 11h46Atualizada em 22/02/2022 07h51

Uma ilusão de ótica tem chamado atenção Twitter desde semana ada. A imagem mostra uma sequência de números em um desenho de tons branco, preto e cinza. A foto mostra vários números, mas não são todas as pessoas que têm capacidade de enxergá-los. Mas, afinal, por que isso acontece?

A imagem trabalha com diferentes planos e, quem não consegue identificar todos os números, possui uma baixa sensibilidade para vê-los. Essa diferença é chamada de contraste que, segundo a oftalmologia, nada mais é que a capacidade do ser humano em distinguir um objeto e o plano de fundo por trás dele.

A sensibilidade ao contraste depende de vários fatores, incluindo os hábitos das pessoas. Um estudo recente, por exemplo, indicou que jogar games de ação por cerca de uma hora por dia pode melhorar a percepção de contraste.

Ter uma alta sensibilidade ao contraste é importante para casos como dirigir de noite em lugares de pouca visibilidade, além de identificar objetos em diferentes planos.

O nível baixo dessa capacidade pode indicar a existência de doenças oculares, como catarata ou glaucoma, ou apenas ser um sintoma do envelhecimento.

O que você enxerga?

A resposta correta é 3452839, mas muita gente leva tempo para enxergar todos os números ou sequer consegue.

Mais ilusões

As ilusões de ótica, por sua vez, brincam com esses sentidos e nem sempre entrar em um consenso sobre uma imagem é significado de que a pessoa tenha um problema de visão.

Na internet, vários exemplos já apareceram movimentando as redes sociais. Em 2015, um vestido dividiu a opinião de usuários: de um lado alguns destacavam que ele era azul e preto e do outro, pessoas juravam que ele era branco e dourado. O fenômeno em questão era o de "ilusão de luminosidade", um tipo de ilusão de ótica.

vestido - Reprodução/Twitter - Reprodução/Twitter
O dilema da internet de 2015: o vestido é branco e dourado ou azul e preto?
Imagem: Reprodução/Twitter

A explicação por trás desse debate se deu na própria evolução dos seres humanos. Para enxergar a luz do dia, os cérebros começaram a levar em conta o fato de que a luz muda de cor. Ou seja, a iluminação do entorno faz a parte do cérebro responsável por formar a imagem entender uma determinada cor de jeitos diferentes. Isto quer dizer que a cor enxergada depende do ambiente em que você está e da forma como seu cérebro interpreta esta composição. Dessa forma, um objeto pode acabar mostrando cores diferentes, como era o caso do vestido.

Mas não foi apenas esta peça que gerou discussões nas redes. No ano ado, uma outra vestimenta também chamou atenção ao ar a impressão de uma cintura fina demais. O traje marrom, preto e branco tem duas tiras que, quando amarradas, criam um cinto frontal, responsável pela ilusão de ótica.

vestido - Reprodução/TikTok - Reprodução/TikTok
Vestido deixa cintura fina e espanta internautas
Imagem: Reprodução/TikTok

As ilusões de ótica também já se tornaram ferramentas para maquiadores, como é o caso da chinesa Mimi Choi. Ela consegue brincar com a visão das pessoas por meio dos pincéis e compartilha suas obras de arte com mais de 1,3 milhão de seguidores no Instagram.

Até mesmo os animais já causaram ilusão na internet. Um vídeo compartilhado no Twitter pelo serviço de imagens Imgur e posteriormente pelo cientista Dan Quintana mostra uma mão acariciando um animal. A gravação é acompanhada da legenda: "Coelhos adoram carinho no focinho". No entanto, o bicho era, na verdade, um corvo.

Essa confusão se tornou popular em 1892, quando o psicológico americano Joseph Jastrow usou uma ilustração, de autoria desconhecida, para provar que ilusões também são causadas pela atividade mental das pessoas. Segundo ele, a velocidade com que a pessoa percebe ambas as possibilidades da imagem (coelho e pato) pode indicar o quão criativo ela é.