If you're seeing this message, it means we're having trouble loading external resources on our website.

Se você está atrás de um filtro da Web, certifique-se que os domínios *.kastatic.org e *.kasandbox.org estão desbloqueados.

Conteúdo principal

O que são formas 3D?

Este tutorial é de autoria de Peter Collingridge e foi publicado originalmente em seu website.
Se você esteve programando aqui na Khan Academy, provavelmente já desenhou muitas formas 2D, como retângulos e elipses, e talvez tenha se perguntado como criar formas 3D, como cubos e esferas.
Bem, a biblioteca ProcessingJS que usamos aqui não foi realmente projetada para gráficos 3D, mas com um pouco de trigonometria, podemos escrever nossa própria engine para gráficos 3D e, ao fazer isso, aprender como os gráficos 3D funcionam (e descobrir uma razão para aprender trigonometria além de deixar os professores felizes!).
Aqui está um exemplo do tipo de programa que você pode criar - use seu mouse para rotacionar o donut:

O que são gráficos 3D?

Já que as telas de computador são essencialmente bidimensionais, gráficos 3D são apenas ilusões de óptica 2D que fazem seu cérebro achar que está olhando para um objeto 3D. Aqui está um exemplo simples:
Cubo 3D
Três paralelogramos fingindo serem um cubo
Uma engine para gráficos 3D funciona calculando que formas 2D um objeto 3D deve projetar na tela. Então, para escrever sua própria engine 3D, precisamos saber como fazer esses cálculos. Nosso programa não precisa ser tão rápido quanto a maioria das engines 3D, mas deve nos ajudar a entender os princípios pelos quais elas funcionam.

Representando formas

Uma engine gráfica 3D toma um objeto 3D e o converte em gráficos 2D, mas como representamos um objeto 3D no código?
É fácil representar um único ponto no espaço 3D usando um array com três números. Por exemplo, podemos usar [30, 80, 55] para representar um ponto posicionado 30 pixels no eixo horizontal (x), 80 pixels no eixo vertical (y) e 55 pixels no eixo que entra e sai da tela. Brinque com o ponto abaixo, rotacionando-o com o mouse e modificando os números:
Representar uma reta também é fácil: você só tem que conectar dois pontos. Portanto, um modo de representar um objeto em 3D é convertê-lo em um grupo de retas. Isso é chamado wireframe, porque parece que o objeto é feito de arame (wire). Obviamente, isso não é ideal para representar objetos sólidos, mas é um bom começo.

Termos

Abaixo estão alguns termos que iremos usar quando nos referirmos a formas 3D. Outros termos podem ser usados em outros lugares, mas esses aqui são bastante populares.
  • : um ponto representado por três coordenadas, x, y e z (também pode ser chamado de vértice).
  • Aresta: uma linha que conecta dois pontos.
  • Face: uma superfície definida por pelo menos três pontos.
  • Wireframe: uma forma composta apenas de nós e arestas.

Quer participar da conversa?

Você entende inglês? Clique aqui para ver mais debates na versão em inglês do site da Khan Academy.