Ik zit leuk een robot voor robocode te maken, en nu heb ik het volgende probleem.
Ik wil een kogel afschieten die mijn vijand raakt, de snelheid en beginpositie zijn bekend, de hoek wil ik weten.
Van mijn vijand weet ik de positie, richting, en snelheid
dan kom ik op de volgende vergelijking uit voor de positie van mijn kogel:
Xk(t) = Xk(0) + sin(Ak) * Vk * T
Yk(t) = Yk(0) + cos(Ak) * Vk * T
en voor de vijandige bot
Xb(t) = Xb(0) + sin(Ab) * Vb * T
Yb(t) = Yb(0) + cos(Ab) * Vb * T
Xb(t) is de xpositie van de bot op tijdstip t, Ab is de hoek van de bot (en Ak van de kogel), Vb is de snelheid van de bot. Voor de beide hoeken geld dat 0° recht omhoog is, en verder met de klok mee (dus 90° is naar rechts)
De onbekenden zijn dus Ak (die wil ik weten) en T. Nu is het alleen maar een kwestie van de vergelijking naar ák oplossen, maar dat valt dus vies tegen... Mijn natuurkunde-studerende-vriendin kwam tot de conclusie dat ie misschien nummeriek op te lossen is. Maar het probleem lijkt zo eenvoudig...
Iemand een briljante ingeving?
Ik wil een kogel afschieten die mijn vijand raakt, de snelheid en beginpositie zijn bekend, de hoek wil ik weten.
Van mijn vijand weet ik de positie, richting, en snelheid
dan kom ik op de volgende vergelijking uit voor de positie van mijn kogel:
Xk(t) = Xk(0) + sin(Ak) * Vk * T
Yk(t) = Yk(0) + cos(Ak) * Vk * T
en voor de vijandige bot
Xb(t) = Xb(0) + sin(Ab) * Vb * T
Yb(t) = Yb(0) + cos(Ab) * Vb * T
Xb(t) is de xpositie van de bot op tijdstip t, Ab is de hoek van de bot (en Ak van de kogel), Vb is de snelheid van de bot. Voor de beide hoeken geld dat 0° recht omhoog is, en verder met de klok mee (dus 90° is naar rechts)
De onbekenden zijn dus Ak (die wil ik weten) en T. Nu is het alleen maar een kwestie van de vergelijking naar ák oplossen, maar dat valt dus vies tegen... Mijn natuurkunde-studerende-vriendin kwam tot de conclusie dat ie misschien nummeriek op te lossen is. Maar het probleem lijkt zo eenvoudig...
Iemand een briljante ingeving?
edit:
spelling
spelling