Pergunta

eu estou tentando dar formas na minha redondeza motor de física / curvatura.

Estou ciente de vários métodos para definir matematicamente curvas; tais como bezier-cruves, elipses, etc. No entanto não estou certo de que métodos seria o mais adequado para uso em meu motor de física, porque a velocidade, viabilidade de construção, e flexibilidade de cada método deve ser considerado. Eu quero um sistema em que um usuário pode facilmente formar curvas bastante complexas, mas ainda fazer os cálculos de interseção simples e rápido.

O meu motor de física também é puramente contínua, o que significa que eu devo ser capaz de calcular o tempo em que as curvas irá colidir com outras curvas e linhas com base em uma velocidade constante linear / angular.

  • Que técnicas estão lá para definir matematicamente uma curva 2D?

  • Quais são as vantagens / disatvantages de cada um em termos de velocidade, flexibilidade e simplicidade de construção?

  • é a técnica viável para um motor onde a previsibilidade de forma interseção é crucial?

Foi útil?

Solução

Como seu tag diz, você está descrevendo Bezier curvas . É matematicamente bem definida, assim que você seria capaz de usar isso para detecção de colisão, embora dependendo do que você está fazendo isso pode tornar as equações um pouco mais difícil de escrever e resolver. Eu não sei muito sobre ele, mas algo que parece ser a forma padrão para se aproximar estrias é NURBS , e wikipedia parece ter bastante um artigo sobre o tema. O artigo NURBS provavelmente cobre tudo isso, mas uma maneira rápida e suja para desenhar uma curva suave entre um monte de pontos é a utilização de splines cúbicos interpolando um polinômio cúbico entre cada dois pontos de tal forma que os primeiros derivados corresponder nas bordas. Dessa forma, você obter uma curva que passa por todos os seus pontos e parece suave em todos os lugares, sem cantos afiados nos pontos iniciais.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top