Coordinaten berekenen
-
- Berichten: 7
Coordinaten berekenen
Hallo iedereen, ik zit met een probleempje. voor in een internetspel (dat onder ontwikkeling is) moeten we de coordinaten berekenen van een 'ruimteschip' dat op weg is naar een ander punt, en dit in rechte lijn.
We weten op een moment t hoe ver hij is van het beginpunt, maar we zouden de coordinaten moeten kennen.
Volgende afbeelding verduidelijkt alles
Zou iemand me kunnen uitleggen hoe ik dit bereken? ik ben er al even op aan het zoeken, maar ik vind het niet echt.
Alvast bedankt
Tokesnugerd
We weten op een moment t hoe ver hij is van het beginpunt, maar we zouden de coordinaten moeten kennen.
Volgende afbeelding verduidelijkt alles
Zou iemand me kunnen uitleggen hoe ik dit bereken? ik ben er al even op aan het zoeken, maar ik vind het niet echt.
Alvast bedankt
Tokesnugerd
-
- Berichten: 2.746
Re: Coordinaten berekenen
het kan misschien simpeler, maar dit is hoe ik het zou doen.
maak een rechthoekige driehoek met rechten evenwijdige aan x en y-as en je gegeven rechte is de schuine zijde.
de linker scherpe hoek van je driehoek = arctan(a)
Ox=Ax+|AO|.cos(arctan(a))
Oy=Ay+|AO|.sin(arctan(a))
test eens uit of het zo werkt
maak een rechthoekige driehoek met rechten evenwijdige aan x en y-as en je gegeven rechte is de schuine zijde.
de linker scherpe hoek van je driehoek = arctan(a)
Ox=Ax+|AO|.cos(arctan(a))
Oy=Ay+|AO|.sin(arctan(a))
test eens uit of het zo werkt
-
- Berichten: 481
Re: Coordinaten berekenen
Hmm, waarom doe je het niet als volgt?:
Je berekent eerst de snelheid in x en y richting..
( De beginsnelheid * cos(hoek) = snelheid in x -richting)
Dan is de x coordinaat tijdseenheid*snelheid in x-richting
en ongeveer hetzelfde voor de y-richting
Je berekent eerst de snelheid in x en y richting..
( De beginsnelheid * cos(hoek) = snelheid in x -richting)
Dan is de x coordinaat tijdseenheid*snelheid in x-richting
en ongeveer hetzelfde voor de y-richting
Procrastination is like masturbation; it's all fun and games till you realize you just **** urself..
Correct me if I'm wrong.
Correct me if I'm wrong.
-
- Berichten: 7
Re: Coordinaten berekenen
En.. waar zie je dat ?en je bent de 10 000e geregistreerde
jullie spreken hier over alpha, hoe bepaal ik deze hoek? want dan heb je toch nog 2 lijnstukken nodig...
Alvast bedankt voor jullie reactie !
-
- Berichten: 1.007
Re: Coordinaten berekenen
die hoek is gelijk aan
arctan is de inverse tangens.
\(arctan \left( \frac{y_{A}-y_{B}}{x_{A}-x_{B}} \right)\)
arctan is de inverse tangens.
-
- Berichten: 7
Re: Coordinaten berekenen
We hebben alle mogelijkheden hierboven gebruikt, de bovenste 2 geven trouwens net hetzelfde resultaat, maar het is nog niet correct...
Nu dat we de hoek a kunnen berekenen, kan je eigenlijk gewoon de regeltjes CAS en SOS toepassen (zie afbeelding)
Je hebt dan het verschil in coordinaten, dan is het nog kwestie van optellen of aftrekken (kijken waar de tekens veranderd moeten worden). Ik hoop dat jullie dit kunnen bevestigen.
Toch bedankt voor de antwoorden, het heeft ons geholpen in de 'denkwijze'
Nu dat we de hoek a kunnen berekenen, kan je eigenlijk gewoon de regeltjes CAS en SOS toepassen (zie afbeelding)
Je hebt dan het verschil in coordinaten, dan is het nog kwestie van optellen of aftrekken (kijken waar de tekens veranderd moeten worden). Ik hoop dat jullie dit kunnen bevestigen.
Toch bedankt voor de antwoorden, het heeft ons geholpen in de 'denkwijze'
-
- Berichten: 7
Re: Coordinaten berekenen
Ik mocht mijn bericht niet wijzigen, maar in dit gevaal zou
Xo = Xa + Aanliggendrechthoekszijde
Yo = Ya + Overstaandrechthoekszijde
Klopt dit in alle gevallen ? en welke hoek is alpha als je de punten A en O omwisselt ? (de hoek tussen de stippellijn en de rechte die nu Overstaanderechthoekszijde voorstelt ?)
Xo = Xa + Aanliggendrechthoekszijde
Yo = Ya + Overstaandrechthoekszijde
Klopt dit in alle gevallen ? en welke hoek is alpha als je de punten A en O omwisselt ? (de hoek tussen de stippellijn en de rechte die nu Overstaanderechthoekszijde voorstelt ?)
-
- Berichten: 1.007
Re: Coordinaten berekenen
Dit klopt als O rechts ligt van A en de x-as naar rechts wijst en de y-as naar beneden wijst.tokesnugerd schreef:Ik mocht mijn bericht niet wijzigen, maar in dit gevaal zou
Xo = Xa + Aanliggendrechthoekszijde
Yo = Ya + Overstaandrechthoekszijde
Klopt dit in alle gevallen ?
Hoek blijft hetzelfde. Alleen de plusjes in je vergelijkingen worden minnetjes. De hoek die ik gaf was trouwens de hoek tussen de horizontaal en de stippellijn met als aanname dat de y-as omhoog lag.en welke hoek is alpha als je de punten A en O omwisselt ? (de hoek tussen de stippellijn en de rechte die nu Overstaanderechthoekszijde voorstelt ?)
-
- Berichten: 7
Re: Coordinaten berekenen
Nog maar weer eens een nieuwe reply (ik kan mijn posts nooit editten) Het valt me op dat ik eigenlijk net hetzelfde zeg als jullie
Ik ga het nu eens volledig uitschrijven (1 grote formule)
Klopt deze een beetje ?
En welke formule moet je dan gebruiken als O links ligt van A (en wat als O boven A ligt ?) -> een ruimteschip kan in elke richting reizen (2 dimensies hier) Dus we zijn op zoek naar een algemene formule (of meerdere formules; met een beetje programmeren kan je dan bepalen welke formule nodig is)
Bedankt
Ik ga het nu eens volledig uitschrijven (1 grote formule)
Klopt deze een beetje ?
Je zou die afbeelding zo in een assenstelsel kunnen steken -> de X-as is een horizontale rechte en de Y-as is de verticale.Sjakko schreef:Dit klopt als O rechts ligt van A en de x-as naar rechts wijst en de y-as naar beneden wijst.
Hoek blijft hetzelfde. Alleen de plusjes in je vergelijkingen worden minnetjes. De hoek die ik gaf was trouwens de hoek tussen de horizontaal en de stippellijn met als aanname dat de y-as omhoog lag.
En welke formule moet je dan gebruiken als O links ligt van A (en wat als O boven A ligt ?) -> een ruimteschip kan in elke richting reizen (2 dimensies hier) Dus we zijn op zoek naar een algemene formule (of meerdere formules; met een beetje programmeren kan je dan bepalen welke formule nodig is)
Bedankt
-
- Berichten: 1.007
Re: Coordinaten berekenen
Je hoek klopt niet. Aangezien jij de y-as met de positieve richting naar beneden neemt, moet je hoek worden:
\(arctan \left( \frac{y_{B}-y_{A}}{x_{A}-x_{B}} \right)\)
-
- Berichten: 1.007
Re: Coordinaten berekenen
Het wordt een beetje een chaos zo. Bepaal eerst hoe je assen komen te liggen. Dat bepaalt de minnetjes en plusjes in je formules. De manier van superslayer kan ook, maar het probleem is dat de arctan niet altijd de hoek geeft die je wilt (je kunt er k*180graden naast zitten). Voor de hoek tussen horizontaal en stippellijn zou ik zorgen dat die tussen 0 en 90 graden ligt. Dat doe je met de absolute waarde.
Voor x geldt:
als
als
Als jouw assen in een andere richting liggen, dan beïnvloedt dat die minnetjes en plusjes.
\(hoek=arctan \left( abs \left( \frac{y_{A}-y_{B}}{x_{A}-x_{B}} \right) \right)\)
Stel de y-as ligt van beneden naar boven en de x-as ligt van links naar rechts, dan:Voor x geldt:
als
\(x_{B}>x_{A}\)
: (ofwel B ligt rechts van A)\(x_{O}=x_{A}+rcos \theta\)
als \(x_{B}<x_{A}\)
: (ofwel B ligt links van A)\(x_{O}=x_{A}-rcos \theta\)
Voor y geldt:als
\(y_{B}>y_{A}\)
: (ofwel B ligt hoger dan A)\(y_{O}=y_{A}+rsin \theta\)
als \(y_{B}<y_{A}\)
: (ofwel B ligt lager dan A)\(y_{O}=y_{A}-rsin \theta\)
r=schuinezijde en \(\theta\)
=hoekAls jouw assen in een andere richting liggen, dan beïnvloedt dat die minnetjes en plusjes.
Re: Coordinaten berekenen
(ik ben de programmeur van het spel)
Het nulpunt van het assenstelsel staat links boven, dus we zitten in kwadrant IV (als ik me dit goed herinner).
Ik heb een test gemaakt om de formules te testen, maar 'het schip' komt te vroeg aan.
De afstand (dist) is berekend met de stelling van pythagoras als volgt:
Het nulpunt van het assenstelsel staat links boven, dus we zitten in kwadrant IV (als ik me dit goed herinner).
Ik heb een test gemaakt om de formules te testen, maar 'het schip' komt te vroeg aan.
Code: Selecteer alles
Start: (24, 36)
End: (84, 93)
Dist: 82.7586853448
Speed: 5
ETA: 16.551737069
Tick 0 » Angle 43.5311992856° » (28, 39)
Tick 1 » Angle 43.958373324° » (32, 42)
Tick 2 » Angle 44.4437477729° » (36, 46)
Tick 3 » Angle 44.3969088056° » (40, 49)
Tick 4 » Angle 45° » (44, 53)
Tick 5 » Angle 45° » (48, 57)
Tick 6 » Angle 45° » (52, 61)
Tick 7 » Angle 45° » (56, 65)
Tick 8 » Angle 45° » (60, 69)
Tick 9 » Angle 45° » (64, 73)
Tick 10 » Angle 45° » (68, 77)
Tick 11 » Angle 45° » (72, 81)
Tick 12 » Angle 45° » (76, 85)
Tick 13 » Angle 45° » (80, 89)
Tick 14 » Angle 45° » (84, 93)
Tick 15 » Angle 0° » (84, 93)
Tick 16 » Angle 0° » (84, 93)
\(\sqrt \left( \left( x_{A} - x_{B} \right) + \left( y_{A} - y_{B} \right) \right)\)
En de geschatte tijd (ETA) is deze afstand gedeeld door de snelheid.-
- Berichten: 2.746
Re: Coordinaten berekenen
maak daar eens\(\sqrt \left( \left( x_{A} - x_{B} \right) + \left( y_{A} - y_{B} \right) \right)\)
\(\sqrt \left( \left( x_{A} - x_{B} \right)^2 + \left( y_{A} - y_{B} \right)^2 \right)\)
van.dat leek me op het eerste zich al niet te kloppen.
test het eens en laat het weten.
Re: Coordinaten berekenen
Sorry, dat was een fout in de post (ik heb LaTeX nog niet veel gebruikt).
Nuja, ik heb het een beetje anders moeten doen, en heb Sjakko's post gevolgd (#12). Dit werkt in de meeste gevallen, maar niet als (in zijn formule) r gelijk is aan 1. Dit is redelijk irritant, omdat mijn spel een snelheid toelaat van 1 tot 5.
Ik kan de PHP code posten als dat makkelijker is.
Nuja, ik heb het een beetje anders moeten doen, en heb Sjakko's post gevolgd (#12). Dit werkt in de meeste gevallen, maar niet als (in zijn formule) r gelijk is aan 1. Dit is redelijk irritant, omdat mijn spel een snelheid toelaat van 1 tot 5.
Ik kan de PHP code posten als dat makkelijker is.