Giter Site home page Giter Site logo

paint-opengl's People

Watchers

 avatar

paint-opengl's Issues

Implementar traçado de linhas

Leia os comentários do programa “linha.cpp”. Utilizando o programa “linha.cpp” como referência, implemente o algoritmo de Bresenham para traçado de linhas, utilizando apenas GL_POINTS como parâmetro da função glBegin(). Esse parâmetro indica que cada vértice deve ser tratado como um ponto simples;

Transformações geométricas

Utilizando o programa “linha.cpp” como referência, implemente funções para realizar transformações geométricas como a translação, escala, cisalhamento, reflexão e rotação das formas geométricas rasterizadas. Obs.: as funções de transformações geométricas da API do OpenGL ou de qualquer outra biblioteca não podem ser utilizadas.

Implementação do Flood Fill

Utilizando o programa “linha.cpp” como referência, implemente o algoritmo Flood Fill com vizinhança 4. Pode ser usada a função glReadPixel() do OpenGL para ler a cor do pixel na janela GLUT, ou uma matriz auxiliar para a implementação. Nesse caso, a função preencherá as formas geométricas rasterizadas.

Desenhar polígonos

Utilizando o Algoritmo de Bresenham implementado, desenvolva uma função para desenhar polígonos, dadas quatro ou mais coordenadas.

Desenhar quadriláteros

Utilizando o Algoritmo de Bresenham implementado, desenvolva uma função para desenhar quadriláteros, dadas as coordenadas do topo esquerdo e da base direita desse quadrilátero;

Desenhar triângulos

Utilizando o Algoritmo de Bresenham implementado, desenvolva uma função para desenhar triângulos a cada três coordenadas.

Rasterização de circunferências

Utilizando o programa “linha.cpp” como referência, implemente uma função com o Algoritmo de Bresenham para rasterização de circunferências. Utilize apenas GL_POINTS como parâmetro da função glBegin(). A função de rasterização receberá como parâmetro as coordenadas do centro da circunferência e o tamanho do raio.

Algoritmo de Bresenham para todos os octantes

O Algoritmo de Bresenham implementado só funciona no primeiro octante. Desenvolva funções com os algoritmos para redução ao primeiro octante e sua transformação inversa para que possam ser desenhadas retas em todos os octantes;

Rasterização de polígonos

Utilizando o programa “linha.cpp” como referência, implemente a função de rasterização de polígonos. Nesse caso, a função preencherá as formas geométricas rasterizadas com exceção da circunferência.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.