Ativ 2. Aproveitamento de volume
Bom dia, nessa atividade nos foi pedido que demonstrássemos graficamente que o cubo é o paralelepípedo com maior aproveitamento volumétrico.
Com base nisso, pensei em utilizar o recurso das cores de modo parecido.
No caso, defini que o plano de fundo seria dado pelo tom de cinza da coordenada z, e a cor do stroke(as arestas) do cubo seriam dadas pela união das 3 coordenadas. A altura representando os tons de vermelho, a largura os tons de verde e a profundidade os tons de azul, fazendo uso do RGB. Logo, quando os 3 são congruentes, o cubo estará no tom de cinza exato do plano de fundo.
Como não tem como mensurar com o mouse onde estaria a coordenada Z, fiz o uso do mousePressed. Cada vez que o usuário pressiona o mouse a profundidade aumenta. Porém, como o uso de cores se baseia nos tons de cinza, o limite da profundidade é o de 255.
Aqui está o link para o programa em Processing.
Em classe, havia sido feito um exemplo bidimensional, em que, quando a cor do retângulo(dada pela largura), se igualava à cor de fundo(dada pela altura), estaríamos diante de um quadrado, a figura com melhor aproveitamento de área.
Exemplo de classe. |
Como não tem como mensurar com o mouse onde estaria a coordenada Z, fiz o uso do mousePressed. Cada vez que o usuário pressiona o mouse a profundidade aumenta. Porém, como o uso de cores se baseia nos tons de cinza, o limite da profundidade é o de 255.
Código final completo. |
Para que o box ficasse sempre totalmente visível, também utilizei do recurso do translate (que modifica a origem para o ponto indicado), modificando sempre as coordenadas do ponto de origem para 5 pontos à direita da metade da largura do cubo e 5 pontos abaixo da metade da altura dele. Isso é necessário pois a função box alinha normalmente o centro do cubo à origem.
Portanto, para que os textos ficassem em coordenadas estáticas, sempre antes dos textos, alinhava novamente a origem ao ponto (0,0), fazendo novamente uso do translate.
Portanto, para que os textos ficassem em coordenadas estáticas, sempre antes dos textos, alinhava novamente a origem ao ponto (0,0), fazendo novamente uso do translate.
Basicamente foi assim que fiz para demonstrar graficamente como o cubo é o paralelepípedo com melhor aproveitamento em termos de volume, podendo também ser visto como um simples jogo de procurar o lugar exato onde o cubo some.
Espero que tenha ficado claro!Gif do programa rodando! |
Aqui está o link para o programa em Processing.
Comentários
Postar um comentário