A função moveCaixa2(x1,y1,x2,y2,n) foi criada com base nas atividades feitas em sala de aula, onde dada uma posição inicial x1,y1 e uma final x2,y2, o elemento (quadrado) irá se mover entre elas num determinado número de passos, onde cada um deles se passa em um frame de movimento do programa.
Para a criação do algoritmo, foi necessário declarar uma variável FLOAT i = 0 no seu início, para controlar o movimento do quadrado na tela, onde 0 representaria sua posição inicial e 1 sua posição final.
A partir daí, foi iniciada a construção do procedimento MoveCaixa2, com as variáveis exemplificadas anteriormente que seriam recebidas na sua chamada. Além disso foi necessário a criação de mais duas variáveis, que receberiam a distância (diferença) entre a posição final e a inicial, tanto para X (xdistancia) como para Y (ydistancia).
Então foi criado um laço FOR que seria executado enquanto a variável "i" fosse menor ou igual a 1, o que impediria que o quadrado se movesse além da posição final especificada (i=1). Nesse mesmo laço FOR, o desenho do quadrado receberia as suas posições iniciais (para X e Y) somadas às distâncias multiplicadas pelo "i" atual (xinicial+(i*xdistancia), por exemplo), que foi definido como sendo "i = i + 1.0 / passos", além do seu tamanho solicitado, 10x10 pixels.
i*xdistancia define em que parte da tela o quadrado deverá estar, pois ele representa a fração de "xdistância" em um dado instante "i" do movimento.
Feito isso, só foi necessário chamar o procedimento no DRAW com as posições solicitadas e um número de passos qualquer, onde 60 passos seriam iguais a um segundo de execução do programa, pelo frame rate padrão do processing ser de 60 frames por segundo.
GIF informativo da tarefa:
Para a criação do algoritmo, foi necessário declarar uma variável FLOAT i = 0 no seu início, para controlar o movimento do quadrado na tela, onde 0 representaria sua posição inicial e 1 sua posição final.
A partir daí, foi iniciada a construção do procedimento MoveCaixa2, com as variáveis exemplificadas anteriormente que seriam recebidas na sua chamada. Além disso foi necessário a criação de mais duas variáveis, que receberiam a distância (diferença) entre a posição final e a inicial, tanto para X (xdistancia) como para Y (ydistancia).
Então foi criado um laço FOR que seria executado enquanto a variável "i" fosse menor ou igual a 1, o que impediria que o quadrado se movesse além da posição final especificada (i=1). Nesse mesmo laço FOR, o desenho do quadrado receberia as suas posições iniciais (para X e Y) somadas às distâncias multiplicadas pelo "i" atual (xinicial+(i*xdistancia), por exemplo), que foi definido como sendo "i = i + 1.0 / passos", além do seu tamanho solicitado, 10x10 pixels.
i*xdistancia define em que parte da tela o quadrado deverá estar, pois ele representa a fração de "xdistância" em um dado instante "i" do movimento.
Feito isso, só foi necessário chamar o procedimento no DRAW com as posições solicitadas e um número de passos qualquer, onde 60 passos seriam iguais a um segundo de execução do programa, pelo frame rate padrão do processing ser de 60 frames por segundo.
GIF informativo da tarefa:
Download do código: https://drive.google.com/open?id=0B1efNNEey75deTBEdmN0aldib3c
Comentários
Postar um comentário