Comentário Código Processing Atividade 2
- Marcos André
- 25 de mar. de 2016
- 2 min de leitura

//Código:
void setup() { size(640, 360, P3D); noStroke(); colorMode(RGB, 1); fill(0.4); }
void draw() { background(0); translate(width / 2, height / 2); lightSpecular(1, 1, 1); directionalLight(0.8, 0.8, 0.8, 0, 0, -1); float s = mouseX / float(width); specular(s, s, s); sphere(150); }
Comentário:
○Na função de Setup, nos deparamos com uma nova opção, além dos usuais parâmetros de determinação do tamanho da tela.Essa terceira opção muda o tipo de renderização(Default,P3D,P2D,PDF).A P3D simula o eixo Z utilizando a biblioteca OpenGL e permitindo a construção de projetos em 3D.
○O código noStroke(); retira as linhas de desenho.Eliminando-o teremos:

○O código colorMode(RGB, 1); força a esquemática das cores para RGB.O segundo parâmetro define o alcance máximo das cores,que normalmente é 255.Esse tipo de mudança pode facilitar o desenvolvimento do programa, adequando os atributos à preferência do codificador.Com 1, as cores variaram em float de 0.0 à 1.0.
○O código fill(0.4); determina a cor de preenchimento da forma.
○Na função de loop void draw(); Temos:
•A determinação da cor de background da cena com
background(0);
• translate(width / 2, height / 2);
Realiza a translação do centro de criação original dos eixos de orientação do compilador.O eixo original localiza-se no canto superior esquerdo da tela, com esse código, o local de criação primário é transferido para as cordenadas (Altura(tela)/2,Lagura(tela)/2) que representam o exato centro da tela.Caso retiremos a linha, a esfera será criada na origem padrão:

•lightSpecular(1, 1, 1);
Determina a cor da fonte de luz na cena, como o modo de cor definido foi o RGB então os parâmentros seguem a seguinte lei: lightSpecular(R,G,B);
Podemos alterar os valores, e assim, teremos diferentes cores de luz:



•directionalLight(0.8, 0.8, 0.8, 0, 0, -1); Define a cor(RGB,Como os valroes são iguais,a cor é branca) e a direção no eixo x,y,z.
Com a seguinte alteração teremos:
directionalLight(0.8, 0.8, 0.8, 1, 0, -1);

Observe que no lado esquerdo(Eixo x) não existe foco de luz.
•Agora, comentaremos a interatividade do código:
float s = mouseX / float(width); specular(s, s, s);
Na primeira linha o autor do código inicializou uma variável do tipo float chamada s, que recebe a posição x do mouse dividio pela largura da tela que, como é um valor inteiro, precisou ser transformada para float.
Na segunda linha o specular(s, s, s); recebe a variável recém criada.Os três parâmetros controlam a saturação, brilho e cor e com isso mudam a intensidade da luz na esfera.



•Na ultima linha do código temos: sphere(150); que cria uma esfera de raio 150.
Observemos uma alteração nesse parâmetro:
sphere(50);

•Uma alteração que interessante que fiz foi:
float s1 = mouseY / float(height);
float s = mouseX / float(width);
rotateY(s); rotateX(s1); box(140);
Comentarios