Espérons que je peux décrire ma situation clairement chaque fois que je tente de le décrire aux autres sur le tableau blanc ou un stylo et du papier, il faut quelques tentatives :)Contraindre une roue arrière à la roue avant
Une partie de mon programme comprend un chariot qui roule le long d'un rail et le chariot roule sur deux roues. Les rails sont une ligne simple qui monte et descend dans les courbes et s'aplatit également. Pour créer le niveau j'utilise un NSMutableArray de CGPoints et les dessine à l'écran.
Ma détection de collision actuelle consiste à utiliser chaque roue x-cordée et à la comparer à l'ensemble des valeurs x des points. Quand c'est entre deux valeurs x de points, je peux utiliser le dégradé pour découvrir s'il est inférieur ou inférieur à la valeur y à ce moment-là. Cela fonctionne bien lorsque j'utilise des valeurs définies de X.
Alors, voici le problème. Premièrement, j'ai une roue avant qui roule parfaitement le long de cette ligne avec une position x correcte et y correcte. Le problème que j'ai est de créer une roue arrière qui suit cette roue avant. La roue arrière suit également parfaitement la ligne mais c'est toujours une distance X derrière la roue avant, cela s'avère irréaliste car lorsque vous montez ou descendez des pentes raides, la distance entre les roues est trop grande en raison de la différence de Y.
Exemple:
O O .......
Exemple Hill:
O
........ O
Même distance en x, différence en Y, donc la distance hypoténuse est plus grande et donne l'impression que les roues s'écartent. J'ai besoin de contraindre la roue arrière à la roue avant donc c'est vrai (hypoténuse) la distance est toujours la même. La difficulté que j'ai est que, puisque cela implique de changer sa position x, je ne peux pas avoir une idée de la détection de collision. Si je commence à monter, je dois changer sa vitesse pour tomber derrière la roue avant, alors j'ai besoin de changer sa valeur x pour rester la même distance derrière le volant, maintenant c'est la valeur y. aura tort car il finit dans le sol.
J'ai râpé mon cerveau et les bureaux pour quelques jours maintenant, de l'aide s'il vous plaît?
Ceci peut être une bonne question pour l'échange de maths si vous n'en avez pas ici. http://math.stackexchange.com/ On dirait que ce serait un concept mathématique simple qui ferait cela. IE: cos (hypoténuse)? Quelque chose comme ça, au lieu de changer Y, vous changeriez le rapport de x: y – bradenkeith
le problème avec ceci est que cela ne fonctionne que si le gradient sous les deux roues est le même. Si c'est sur une pente rapide, la roue arrière sera soit au-dessus ou au-dessous de la colline – user355622