O ep pede para levar em consideração a colisão entre passageiros para atualizar o vetor velocidade. Porém com os dados do enunciado não é possível calcular o novo vetor velocidade, porque:
A) A massa dos passageiros é necessária para o cálculo
B) Para haver colisão, os objetos tem que se encontrar com uma velocidade não nula, e como a taxa de atualização de movimento é de 1 segundo, e supondo que os passageiros nadem com a mesma velocidade, só pode haver colisão em 2 momentos.
1º Quando na última imagem dois passageiros (pelo menos) ficam na mesma posição, nesse caso para haver o efeito da colisão eles tem que ter velocidade, então mesmo após o passageiro nadar para uma direção a inércia deve mantê-lo em movimento nessa mesma direção até que alguma força o faça mudar (a colisão no caso), mas para isso deveríamos considerar a inércia.
Caso a consideremos, as direções do conjunto de pontos cardeais e colaterais não é suficiente para ilustrar o movimento do passageiro em praticamente todos os momentos do jogo, e também mesmo que admitíssemos que os passageiros nadassem com uma única velocidade com a inércia eles poderiam ter muitas outras velocidades, mas se não considerarmos, não haverá colisão, logo os passageiros ocupariam o mesmo espaço no mesmo tempo, e a colisão só seria possível na próxima imagem.
2º Quando a colisão acontece entre imagens e não em uma delas, nesse caso o programa deveria guardar a trajetória dos passageiros, não só a origem e o destino, pois no meio do caminho seria possível haver uma colisão, e ela pode dar diferentes resultados se acontecer em diferentes locais, e novamente vem a questão da inércia, pois a colisão pode, novamente, fornecer diferentes resultados se a colisão o correr no inicio do movimento, no meio, ou no fim.
Em resumo é necessário descrever melhor o movimento do passageiro, ele nada e para a cada imagem ou, esta sempre nadando a velocidade constante ou ainda, ele "teleporta" de uma posição para a outra sem percorrer caminho algum ou, qualquer outro tipo de movimentação possível.
C) Existem 3 tipos de colisão, elástica, perfeitamente inelástica e parcialmente inelástica, cada uma com resultados diferentes.Qual delas está ocorrendo?
Eu entendo que o modelo físico proposto é uma simplificação que não leva muito em conta vários fatores e, que caso eu queria poderia implementar o jogo da maneira mais próxima do real possível, porém eu gostaria de saber qual é o "piso" do modelo físico, até onde podemos desprezar certos valores, pois como mostrado acima é possível simplificar tanto o modelo que não haveria colisão por exemplo.
Diria q algumas discussões poderiam ser colocadas:
- a massa dos náufragos não são realmente necessários, pois supondo q todos têm a mesma massa (hein?), o sistema seria independente dela.
- a inércia em meio aquoso pra uma pessoa nadando pode ser considerada inexistente. Além disso, a mudança de direção pode ser "justificada" pelas ondas do mar, q acabam te arrastando pra "qq" lado
- o choque de duas pessoas na água não seria elástico em hipótese alguma; pelo contrário, acho q duas pessoas naufragadas tenderiam a se ajudar, logo elas se juntariam e o "choque" seria inelástico.
Outros pontos q eu acho q não foram colocados são:
- "A frequência média de geração dos passageiros e a velocidade média com a qual eles são gerados deverão (...)".
Entendi q frequência seria a de geração de náufragos por unidade de tempo, e velocidade média sendo a velocidade inicial v0. Entendi certo?
- "Os passageiros serão gerados aleatoriamente com base em uma semente que poderá ser fornecida pelo usuário na linha de comando obtida a partir do tempo do sistema."
Posso escolher qual das formas eu posso usar ou tenho q implementar ambas?
Até amanhã!
- a massa dos náufragos não são realmente necessários, pois supondo q todos têm a mesma massa (hein?), o sistema seria independente dela.
- a inércia em meio aquoso pra uma pessoa nadando pode ser considerada inexistente. Além disso, a mudança de direção pode ser "justificada" pelas ondas do mar, q acabam te arrastando pra "qq" lado
- o choque de duas pessoas na água não seria elástico em hipótese alguma; pelo contrário, acho q duas pessoas naufragadas tenderiam a se ajudar, logo elas se juntariam e o "choque" seria inelástico.
Outros pontos q eu acho q não foram colocados são:
- "A frequência média de geração dos passageiros e a velocidade média com a qual eles são gerados deverão (...)".
Entendi q frequência seria a de geração de náufragos por unidade de tempo, e velocidade média sendo a velocidade inicial v0. Entendi certo?
- "Os passageiros serão gerados aleatoriamente com base em uma semente que poderá ser fornecida pelo usuário na linha de comando obtida a partir do tempo do sistema."
Posso escolher qual das formas eu posso usar ou tenho q implementar ambas?
Até amanhã!
Resposta do post do Paulo:
- você pode arbitrar a massa que quiser aos passageiros;
- eu colocaria a colisão como elástica, pois senão o jogo pode "perder a graça", com a formação de "clusters" de passageiros, o que tornaria o resgate deles muito fácil. Porém, se você conseguir uma solução de compromisso (uma colisão não totalmente inelástica, mantendo o jogo interessante), pode sim adotá-la.
Os outros pontos:
- frequência que eles são gerados: por exemplo, 10 novos passageiros entram na tela por segundo. Velocidade média com que eles são gerados: dos 10 passageiros gerados, em média eles têm o vetor de velocidade que permite se deslocarem x "pixels" por segundo na tela.
- coloque o fornecimento da semente como argumento do programinha, deixando um valor como "default".
[]s,
- você pode arbitrar a massa que quiser aos passageiros;
- eu colocaria a colisão como elástica, pois senão o jogo pode "perder a graça", com a formação de "clusters" de passageiros, o que tornaria o resgate deles muito fácil. Porém, se você conseguir uma solução de compromisso (uma colisão não totalmente inelástica, mantendo o jogo interessante), pode sim adotá-la.
Os outros pontos:
- frequência que eles são gerados: por exemplo, 10 novos passageiros entram na tela por segundo. Velocidade média com que eles são gerados: dos 10 passageiros gerados, em média eles têm o vetor de velocidade que permite se deslocarem x "pixels" por segundo na tela.
- coloque o fornecimento da semente como argumento do programinha, deixando um valor como "default".
[]s,
Resposta do post do Caio:
A) Você pode especificar livremente a "massa" dos passageiros;
B) Você pode abrir mão dessa simplificação dos pontos cardeais e permitir qualquer direção aos passageiros, desde que mantenha a propriedade Markoviana (a maior probabilidade de manter o mesmo vetor de velocidade).
"Quando a colisão acontece entre imagens e não em uma delas, nesse caso o programa deveria guardar a trajetória dos passageiros, não só a origem e o destino, pois no meio do caminho seria possível haver uma colisão"
Exatamente, e você precisa lidar com isso (ou então imprimir na tela com uma taxa de atualização mais frequente que 1s, também aceito isso).
C) Para simplificar, pode ser colisão elástica.
A) Você pode especificar livremente a "massa" dos passageiros;
B) Você pode abrir mão dessa simplificação dos pontos cardeais e permitir qualquer direção aos passageiros, desde que mantenha a propriedade Markoviana (a maior probabilidade de manter o mesmo vetor de velocidade).
"Quando a colisão acontece entre imagens e não em uma delas, nesse caso o programa deveria guardar a trajetória dos passageiros, não só a origem e o destino, pois no meio do caminho seria possível haver uma colisão"
Exatamente, e você precisa lidar com isso (ou então imprimir na tela com uma taxa de atualização mais frequente que 1s, também aceito isso).
C) Para simplificar, pode ser colisão elástica.