Trabalhei como comunicador visual na comissão de comunicação do programa de aprendizagem cooperativa em células estudantis PACCE na propria UFC. Hoje sou editor de vídeos do Laboratório de Mídias Eletrônicas (LME), também vinculado a UFC.
Bem hoje iremos criar um desenho de um olho, mas esse olho irá seguir o cursor do mouse, sem sair do globo ocular é claro. E para isso usaremos algumas regrinhas de trigonometria, tais como coordenadas polares e tangentes.
Pois vamos para a codificação.
float x, y;
float angulo;
void setup() {
size (600, 600);
}
void olhoMovendo (float ang) {
fill (255);
ellipse (width/2, height/2, 300, 300);
fill (20);
ellipse (x, y, 100, 100);
float distancia = distancia2D (width/2, height/2, mouseX, mouseY);
if (distancia > 74) {
x = (74 * cos(angulo)) + width/2;
y = (74 * sin(angulo)) + height/2;
} else {
x = mouseX;
y = mouseY;
}
}
float distancia2D(float dx1, float dy1, float dx2, float dy2) {
int aux = (int) sqrt((dx2-dx1)*(dx2-dx1)+(dy2-dy1)*(dy2-dy1));
int retorna = (int) sqrt(aux*aux);
return retorna;
}
float limite(float x, float y) {
if (mouseX != 0) {
angulo = y/x;
}
angulo = atan(angulo);
if (x < 0) {
angulo = PI + angulo;
}
if (y <= 0 && x >= 0) {
angulo = 2*PI + angulo;
}
return angulo;
}
void draw() {
background (255);
float tang = limite (mouseX - width/2, mouseY-height/2);
olhoMovendo (tang);
}
Sou - Samuel Lincoln -
Sou um aluno do Curso de Sistemas e Mídias Digitais da Universidade Federal do Ceará (UFC). Já estudei Matemática (bacharelado) e Matemática industrial, na mesma universidade. Trabalho como editor de vídeos do Laboratório de Mídias Eletrônicas, vinculada a Universidade Virtual (vinculada a UFC).