Posts Tagged 'rizoma'

An environment for experiments / Um ambiente para experimentos

{English}
Environment being developed in Processing for experiments in emergence of graphical images. For the inter-relation of several images in a space, the initial attempt was to apply some physical characteristics. Because the unities needed to occupy a real space with some defined boundaries.

Collision equations normally consider a inversion of velocities in relation to the meeting point between the balls. This is problematic for a computational simulation, because that is calculates in a time-space of frames, and you never have the exact moment of collision, but a point at which the balls are already superimposed (Fu-Kwun Hwang ilustrates here the problem). The solution for the problem was the follow

dx = bola2X-bola1X;
dy = bola2Y-bola1Y;
dist = sqrt(dx*dx+dy*dy); // distance
distMin = bola2Raio+bola1Raio;
if (dist<distMin) {
ang = atan2(dy,dx);  //collision anglr
targetX = bola1X + cos(ang) * distMin;
targetY = bola1Y + sin(ang) * distMin;
ax = (targetX – bola2X) * spring;  //spring=~0.6
ay = (targetY – bola2Y) * spring;
bola1X -= ax; bola1Y -= ay;
bola2X += ax; bola2Y += ay;

For handling the movements of the units was implemented vectors of acceleration, velocity and position. And a initial behavior of cohesion and separation in relation to other units.

{Português}
Ambiente sendo desenvolvido em Processing para experimentos de emergência de imagens gráficas. Para a inter-relação de várias unidades em um espaço, se buscou a principio a aplicação de algumas características físicas. As unidades precisavam ocupar um espaço com limites definidos, para poderem se aglomerarem e se movimentarem sem virar uma única bola de várias unidades sobrepostas.

As equações de colisão normalmente consideram a inversão de velocidades em relação a normal do ponto de encontro entre as bolas, levando em conta as vezes as diferentes massas. Isso se torna problemático para uma simulação computacional que avança calculando em unidades de frames, porque nunca se tem o momento exato da colisão, e sim um ponto em que as bolas já estão sobrepostas (Fu-Kwun Hwang ilustra aqui o problema). Retroceder e avançar unidades de tempo causa reações estranhas quando há muitas bolas aglomeradas. A solução encontrada foi de caráter mais simples e diferente da apresentada por Fu-Kwun Hwang, por serem unidades com movimento autônomo a inversão de velocidade não era necessária, as bolas precisavam empurrar e serem empurradas, e ao se verem em grandes aglomerados, lutarem aos poucos por seu espaço, sendo algumas vezes comprimidas. Calcula-se então o ângulo de encontro das unidades e quanto elas estão sobrepostas em relação a seus raios, uma parte da diferença é adicionada a cada bola em cada frame, para que as bolas se acomodem suavemente as necessidades do seu espaço.

dx = bola2X-bola1X; // diferença no posicionamento do eixo X
dy = bola2Y-bola1Y;
dist = sqrt(dx*dx+dy*dy); // teorema de pitagoras para descobrir a distância
distMin = bola2Raio+bola1Raio;
if (dist<distMin) {
ang = atan2(dy,dx);  //angulo de colisão
targetX = bola1X + cos(ang) * distMin;
targetY = bola1Y + sin(ang) * distMin;
ax = (targetX – bola2X) * spring;  //spring=~0.6
ay = (targetY – bola2Y) * spring;
bola1X -= ax; bola1Y -= ay; //acertando a posição das bolas
bola2X += ax; bola2Y += ay;

Para a movimentação das unidades se implementou vetores de aceleração, velocidade e posição. E comportamentos iniciais de coesão e separação em relação as outras unidades próximas para movimentação autonoma.

To begin with / Para inicio

[English]

Moved to a new site: www.luiscarli.com

I will no long be posting here.

[Português]

Mudei para um novo site www.luiscarli.com

Não irei mais postar aqui.


Categories / Categorias

Looks / Olhares

  • 18,160