Just nu i M3-nätverket
Gå till innehåll

Ny kordinat


fredand

Rekommendera Poster

Tjenis!

 

Jag är hemma och är sjuk idag, samtidigt håller jag på med lite programmering. Ett litet flygplan som åker runt i en 3D värld.

 

 

Men som vanligt har jag lite strul vad gäller trigonometri, så om någon kan hjälpa mig vore det toppen. Axlarna är:

x-pos åt höger

y-pos uppåt

z-pos mot dig

 

Tänk dig att flygplanet åker rakt fram längs med z-axeln innåt med en updatering av 1 för varje ny förflyttning. Ny position blir ju då nuvarande värde av z - 1 = ny position. Frid och fröjd så långt.

 

Men om planet svänger med vinkeln 10 grader åt t ex höger hur räknar jag då ut den nya kordinaten?

 

Ser du någon fiffig formel för detta?

 

Mvh

Fredrik

 

Länk till kommentar
Dela på andra webbplatser

Hej Jocke!

 

Jag testade vad du sa men flygplanet flög all världens väg. Måste inte distansen räknas in på något sätt som planet förflyttar sig varje gång?

 

Min kod i Java ser ut så här:

 

floats[3] = (float) (floats[3] + Math.sin(radiansRotateAngle));

floats[11] = (float) (floats[11] - Math.cos(radiansRotateAngle));

 

Mitt första försök såg ut så här:

 

floats[3] = (float) (distance * Math.cos(radiansRotateAngle)) + floats[3];

floats[11] = (float) (distance * Math.sin(radiansRotateAngle)) + floats[11];

 

Men det tycker jag inte blev rätt heller, planet svängde olika om det svängde höger istället för vänster. Jag tror vänster sväng blev korrekt men höger sväng så svängde det baklänges.

 

Har du någo ide?

Mvh

Fredrik

 

Länk till kommentar
Dela på andra webbplatser

Hej Jocke!

 

Tack för din hjälp!

 

Jag glömde att uppdatera vinkeln varje gång så jag vred med samma vinkel och fortsatte bara att flyta flygplanet.

 

Nu när jag gör en 180 graders sväng så kör jag förts 10 sen 20 osv. Utan din hjälp hade jag aldrig löst detta.

 

Tusen tack!

 

Fredrik

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...