Eu gostaria de desenhar um terreno para um jogo de motocross. Estive pensando nas curvas de Bezier, mas não tenho certeza se essa é a melhor abordagem. Voçê pode me dar algum conselho? Eu quero fazer isso em JavaScript, não é uma escolha muito boa, mas é um projeto pessoal. Por enquanto, não há problema.
algorithm
linear-algebra
infinidade
fonte
fonte
Respostas:
Em vez de beziers, você provavelmente deseja splines b-splines ou catmull-rom.
Uso: t varia de 0 a 1, onde o valor interpola o spline entre dois pontos de controle e os flutuadores p0, p1, p2 e p3 representam os pontos de controle (anterior, atual, próximo e a seguir). Para interpolar curvas n-dimensionais, basta chamar as funções uma vez por eixo.
A diferença prática entre bsplines e catmull-rom é basicamente que o catmull-rom passa por todos os pontos de controle enquanto os bsplines são mais suaves.
fonte
float it = 1.0f - t
e o usoit
dob0
valor? Por que fazer isso para o bspline, e não para a rom?Encontrei alguns links que podem ser úteis para outras pessoas:
Exemplo de script da implementação de Bezier em JS
http://jsfromhell.com/math/bezier
Pode ser usado no JavaScript ou no ActionScript para animar ao longo de um caminho mais bezier.
http://code.google.com/p/javascript-beziers/
Script / trama de desenho online, bastante útil se você quiser fazer alguns testes
http://jsdraw2d.jsfiction.com/demo/curvesbezier.htm
Um pouco de teoria e um exemplo de implementação
http://13thparallel.com/archive/bezier-curves/
fonte