Object van punt x,y naar andere x,y met snelheid

Wiskunde is niet alleen een vak op school. Kom je ergens in de praktijk (bijvoorbeeld tijdens je werk) een wiskundig probleem tegen dan kun je hier om hulp vragen.
Plaats reactie
Workerbee
Vast lid
Vast lid
Berichten: 59
Lid geworden op: 12 mar 2014, 21:47

Object van punt x,y naar andere x,y met snelheid

Bericht door Workerbee » 02 mei 2014, 11:09

Voor een programeeropdracht heb ik twee objecten die beide x en y coordinaten bevatten.

Nu is het de bedoeling om van object A naar object B te gaan met een snelheid X.

Hoe bereken ik dit?

arie
Moderator
Moderator
Berichten: 3916
Lid geworden op: 09 mei 2008, 09:19

Re: Object van punt x,y naar andere x,y met snelheid

Bericht door arie » 02 mei 2014, 12:43

Kijk eerst eens naar een voorbeeld:

Kies de (pixel-)coordinaten van A = (80, 300) en B = (320, 100).
Je wil van A naar B met snelheid 10 pixels per cyclus (bv per seconden).
Nu wil je weten hoeveel je per cyclus bij je x- en y-coordinaat moet optellen.
Noem deze getallen dx en dy.
Dan moet volgens de stelling van Pythagoras gelden:
dx^2 + dy^2 = 10^2.

Verder weet je dat je snelheid van A naar B gericht is, dus:
dx/dy = 240/(-200) = -1.2
ofwel
dx = -1.2*dy

Samen levert dit op:
(-1.2*dy)^2 + dy^2 = 10^2.
2.44*dy^2 = 100
dy^2 = 40.9836...
dy = -6.4018... (dy is negatief want y moet kleiner worden)
waardoor
dx = (-1.2)*dy = 7.6822..


Werk bovenstaande uit met variabelen i.p.v. (voorbeeld-)getallen.
Je programma komt er dan globaal zo uit te zien:

[1] bereken dx en dy
[2] maak je beginpunt gelijk aan A
[3] zolang je niet in of voorbij B bent:
[3a] tel dx op bij je x-coordinaat
[3b] tel dy op bij je y-coordinaat
[3c] voer zo nodig andere acties uit (bv: plot de huidige positie op het beelscherm)

Noot:
1. het is het handigst als je blijft werken met reele waarden (real / double of iets dergelijks) die je zo nodig steeds kan converteren naar gehele waarden (int, integer etc).
2. let wel op uitzonderingssituaties: wanneer zal je door nul delen? Hoe los je dat op?

Kom je hiermee verder?

Workerbee
Vast lid
Vast lid
Berichten: 59
Lid geworden op: 12 mar 2014, 21:47

Re: Object van punt x,y naar andere x,y met snelheid

Bericht door Workerbee » 04 mei 2014, 16:20

arie schreef:Kijk eerst eens naar een voorbeeld:
Verder weet je dat je snelheid van A naar B gericht is, dus:
dx/dy = 240/(-200) = -1.2
ofwel
dx = -1.2*dy
Bedankt voor je uitgebreide antwoord, het word al een stuk duidelijker. Alleen snap ik hier niet hoe je aan de getallen 240 /(-200) komt?

arie
Moderator
Moderator
Berichten: 3916
Lid geworden op: 09 mei 2008, 09:19

Re: Object van punt x,y naar andere x,y met snelheid

Bericht door arie » 04 mei 2014, 17:32

In dit voorbeeld hebben we A = (80, 300) en B = (320, 100) gekozen.
Als je van A naar B gaat, moet de x-coordinaat dus van 80 naar 320 gaan, ofwel: met 320 - 80 = 240 toenemen.
De y-coordinaat gaat van 300 naar 100, dus moet met 200 afnemen = met (-200) toenemen.

Elke stap van de verplaatsing in je programma moet je dan in die zelfde richting gaan: dus
(de horizontale stapafstand) staat tot (de verticale stapafstand) = 240 staat tot (-200)
ofwel
dx : dy = 240 : -200
ofwel
dx/dy = 200/(-200)

Kom je hiermee verder?

Workerbee
Vast lid
Vast lid
Berichten: 59
Lid geworden op: 12 mar 2014, 21:47

Re: Object van punt x,y naar andere x,y met snelheid

Bericht door Workerbee » 07 mei 2014, 14:13

Oke, ja ik snap het! Heb het werkend :D

Plaats reactie