Este repositório contém o trabalho prático desenvolvido para a disciplina de Computação Gráfica no segundo semestre na PUC Minas, por Leon Junio Martins Ferreira.
O projeto foi desenvolvido utilizando JavaFX (versão 22) com JDK 17, e apresenta uma interface gráfica moderna construída com a biblioteca AtlantaFX. O objetivo principal é implementar e demonstrar conceitos fundamentais de computação gráfica, como transformações geométricas 2D, rasterização e recorte.
O projeto permite ao usuário aplicar as seguintes transformações geométricas sobre os objetos desenhados:
- Translação
- Rotação
- Escala
- Reflexões (nos eixos X, Y e XY)
Os fatores de transformação são definidos pelo usuário via interface gráfica.
-
Retas:
- Algoritmo DDA
- Algoritmo Bresenham
-
Circunferências:
- Algoritmo Bresenham
- Algoritmo de Cohen-Sutherland para regiões codificadas
- Algoritmo de Liang-Barsky com equação paramétrica
A estrutura de dados suporta:
- Vértices/Pontos
- Retas
- Polígonos
Os objetos desenhados podem ser selecionados utilizando uma área de seleção retangular, indicada diretamente pela interface gráfica através de cliques na Área de Desenho, sem necessidade de interações via teclado.
O instalador do projeto já contém todos os conteúdos necessários, incluindo o JavaFX. Para executar, basta seguir as instruções fornecidas pelo instalador.
- JDK 17
- JavaFX 22
- Clone o repositório:
git clone https://github.com/leon-junio/computer_graphics_pratical_1.git
- Para executar utilize o maven com o comando:
mvn clean javafx:run
- Ou crie sua build com arquivo JAR usando o maven:
mvn clean package java -jar target/computer_graphics-1.0.jar ```# computer_graphics_pratical_1