Skip to content
This repository was archived by the owner on Nov 17, 2025. It is now read-only.
This repository was archived by the owner on Nov 17, 2025. It is now read-only.

Cálculos interações por matrizes #22

Description

@icarob-eng

Em cada iteração todos os objetos precisam recalcular todas as distâncias em relação a outros objetos e as forças resultantes.

Uma matriz de distâncias é uma matriz com todos os objetos a serem considerados em uma linha e também uma coluna. Para preenche-la parte-se de uma matriz nula e então calcula-se a distancia apenas para os elementos da matriz onde i > j. isto gera uma matriz triangular inferior com a diagonal principal nula (já que a distância de A-A é 0). Em seguida é só somar a matriz ao negativo da transposta e ter uma matriz de diagonal nula.

Dessa forma não será necessário calcular a distância de A-B e depois novamente a distância B-A.

Todas as operações são feitas a partir disso. Pode-se dar mais um passo e utilizar de uma matriz de produtos de massas e ter uma matriz de forças gravitacionais, ou uma matriz de produtos de cargas elétricas.

Uma matriz de distâncias seria o primeiro passo para optmizar também as colisões. Considere vários objetos de mesmo raio, basta ver quais elementos da matriz tem uma distância menor que os raios e pronto, tem-se uma colisão.

Vale lembrar que o calculo de matriz de numpy é bastante rápido.

Enfim, isso tudo pode ser opcional e não precisa sobrescrever os cálculos de forças atuais, apenas substituir quando chamado.

Metadata

Metadata

Assignees

No one assigned

    Labels

    OptimizaçãoAlteração para melhorar o processamento do código

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions