Gå til innhold

opengl: romskip skal roters så det "facer" jorda.


Anbefalte innlegg

sett at romskipet har vektor v1

jorda har vektor v2

 

la oss si at jorda står i posisjon v2(0.0f,-3.0f,-8.0f) - altså litt ovenfor sentrum av skjermen.

 

Så flyr romskipet fra venstre til høyre over skjermen i koordinatene v1(x,3.0f, -8.0f)

 

uten rotasjon tegnes romskipet med snuten rett inn i skjermen og bakdelen mot kamera.

 

Hvordan kan jeg få romskipet til alltid å ha snuten mot v2 (jorda).. dvs en generell formel?

 

Jeg er ikke så sleip i matte og vektorer (jeg vet jeg må normalisere vektorene litt her og der..), så litt grundig kommentarer hadde hjulpet meg masse :)

Lenke til kommentar
Videoannonse
Annonse
"]sett at romskipet har vektor v1

jorda har vektor v2

 

la oss si at jorda står i posisjon v2(0.0f,-3.0f,-8.0f) - altså litt ovenfor sentrum av skjermen.

 

Så flyr romskipet fra venstre til høyre over skjermen i koordinatene v1(x,3.0f, -8.0f)

 

uten rotasjon tegnes romskipet med snuten rett inn i skjermen og bakdelen mot kamera.

 

Hvordan kan jeg få romskipet til alltid å ha snuten mot v2 (jorda).. dvs en generell formel?

 

Dette er vanskelig å svare på noen måte som er enkel å programere.

 

Den enkleste måten å få romskipet til alltid å pekke mot jorda ville vært hvis det gikk i en sirkel rundt jorda, noe dette ikke gjør

 

Så vidt jeg har forstått det går romskipet i en rett linje fra et punkt til et annet, Kaller de P0 og P1, og jorda er på et punkt Q som ikke ligger på denne linja. Punktet romkipet ligger på, P, er gitt ved

P = P0(1-t)+P1*t

når t er tiden som jeg har satt til å gå mellom 0 og 1 når romskipet går mellom P0 og P1

 

Punktene her er tenkt i tre dimensjoner slik at det har ikke noe å si hvilken rettning romskipet skal gå.

 

Det du da må gjøre er å regne ut vinkelen til startpunktet og rotere romskipet slik at det pekker på jorda. Ved hver flytting av romskipet må du sørge for at romskipet fortsatt peker mot jorda. For å gjøre det kan du regne ut forandringen av vinkelen eller rotere tilbake til utganspunktet og regne ut på nytt og rotere.

 

Jeg håper dette hjelper

Lenke til kommentar

drister meg til å prøve et svar.. er ei stund siden jeg har rotert romskip...

anyway, vektoren som du er ute etter er vektoren mellom startpunktet(P1) og endepunktet(P2), denne beskriver nødvending forflytning av romskipet. Finn denne, Vendring = P2-P1 normaliser denne og roter det lokale kordinatsystemet til romskipet i riktig vei ved bruk av denne..

 

Siden du kun romskipet fly i x retningen så skulle du kansje klare å følge med om det funker

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...