;(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

Thiago Gonçalves

Órbita "diferentona" de planeta dá pistas para entender nosso Sistema Solar

Impressão artística do exoplaneta HD 106906b - Divulgação/NASA, ESA e M. Kornmesser (ESA/Hubble)
Impressão artística do exoplaneta HD 106906b Imagem: Divulgação/NASA, ESA e M. Kornmesser (ESA/Hubble)

17/12/2020 04h00

Na última semana, a notícia de um possível "Planeta Nove" ao redor de outra estrela causou sensação na imprensa. Mas não se preocupem, Nibiru não está chegando. Não são aliens, mas sim uma descoberta que pode nos ajudar a entender a origem do nosso próprio Sistema Solar.

O objeto HD 106906 — na verdade um sistema binário composto por duas estrelas que orbitam uma à outra— já era estudado há vários anos, e em 2013 astrônomos anunciaram a descoberta do planeta HD 106906b. A grande surpresa, na época, era a distância do planeta, quase mil vezes a distância da Terra ao Sol, sobretudo levando-se em conta a sua massa, 11 vezes maior que a de Júpiter.

O resultado era surpreendente porque sabemos que planetas não se formam tão afastados de sua estrela hospedeira, já que não há material suficiente nessas regiões para formar corpos tão grandes.

Além disso, as estrelas de HD 106906 são bastante jovens, com apenas 15 milhões de anos (lembrem-se, para comparação, que o Sol tem quase 5 bilhões de anos).

Como estrela e planeta se formam juntos, podemos concluir que o planeta deve ter se formado mais próximo das estrelas, e de alguma forma foi parar tão longe muito rapidamente.

Mas como isso pode acontecer? Um outro objeto semelhante poderia ter gerado uma interação gravitacional que lançou o planeta para a periferia do sistema, mas ninguém encontrou nenhum planeta que pudesse ter feito isso.

Agora a equipe liderada por Meiji Nguyen, da Universidade de Berkeley, na Califórnia, pode ter uma outra explicação.

Os pesquisadores compararam as posições do planeta em duas imagens do telescópio espacial Hubble, obtidas em 2004 e 2017, e puderam assim calcular a órbita de HD 106906b ao redor de suas hospedeiras.

Os cientistas viram, então, que a órbita do planeta era especial. Muito alongada, e com uma grande inclinação em relação ao plano de detritos que orbitam as estrelas centrais.

A partir dos dados orbitais, os astrônomos pensaram em um modelo no qual o planeta poderia ter interagido com o par de binárias, gerando uma situação instável que poderia modificar sua órbita significativamente.

Um encontro próximo com uma outra estrela que estava apenas ando na vizinhança num momento oportuno, então, teria estabelecido a órbita final de HD 106906b.

Analisando a órbita de estrelas próximas, os cientistas verificaram que, efetivamente, há pelo menos duas candidatas que poderiam ter ado por ali há alguns milhões de anos.

Embora complexo, esse modelo pode explicar o mistério de como colocar um planeta tão grande tão longe e tão rapidamente. E pode inclusive nos contar como nosso próprio Sistema Solar começou.

Afinal, existem indícios (ainda não comprovados) de um corpo massivo orbitando o Sol a enormes distâncias. Algo que não sabemos como foi parar lá, nem quando.

Por isso, é muito útil poder observar um sistema tão jovem, que nos dá pistas importantes sobre o que pode ter acontecido com o nosso próprio sistema planetário há vários bilhões de anos.