Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Verfolgung

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
04.06.2004, 19:15 Uhr
~The Death
Gast


Hallo an alle!!

Ich habe ein problem

Undzwar habe ich ein programm geschrieben bei dem eine Linie gezeichnet wird und diese linie soll immer auf mich zeigen wenn ich mich bewege.

Ich habe dazu OpenGl benutzt! Mein problem ist: wenn ich versuche die Linie nun in z.b. x richtung zu bewegen hauts ma die ganzen berechnungen zusammen. Ich versuche nämlich eine Engine zu schreiben damit sich objekte auf mich zu drehen und los gehen (sozusagen verfolgen) wie bei ego shooter spielen.

Ich habe es mit Vektoren gemacht undzwar wird eine linie mit zwei punkten erzeugt dann wird auf einen punkt dieser gerade zwei normale vektoren dazu gezeichnet dann wird der vektor von punkt 1 zu mir berechnet dann vektor von punkt 1 zu punkt 2 (also gerade) dann wird der winkel berechnet und wenn er größer als 0 ist wird die gerade gedreht (mit der parameterdarstellung des kreises)

hier ist der code

Code:
PPvx=px-p2x;  /x von Vektor punkt 1 zu punkt 2
PPvz=pz-p2z;  /z von Vektor punkt 1 zu punkt 2

p2x=sin(Winkel2)*(sqrt((PPvx*PPvx)+(PPvz*PPvz)));  /Parameterdarstellung eines kreises
p2z=cos(Winkel2)*(sqrt((PPvx*PPvx)+(PPvz*PPvz)));

Pmichx=Ichposx-px; /x von Vektor ich zu punkt1
Pmichz=Ichposz-pz; /z von Vektor ich zu punkt1
    
glPushMatrix();

//s+=0.0009f;
//px+=s;
//p2x+=s;
//ah=-PPvz;
//PPvz+=s;

glBegin(GL_LINES);
    
    glVertex3f(px,py,pz);            // Gerade
             glVertex3f(p2x,p2y,p2z);

             glVertex3f(px,py,pz);             //Normale dazu
    glVertex3f(px+(-PPvz),p2y,pz+PPvx);

             glVertex3f(px,py,pz);            //Normale dazu in andere Richtung
    glVertex3f(px+(PPvz),p2y,pz+(-PPvx));
            
glEnd();

    PPvl2x=Ichposx-(-PPvz); // Diese Codes sind da um zu wissen in welche Richtung sich dann die gerade drehen soll (Vektoren von den normalen zu mir werden berechnet)

    PPvl2z=Ichposz-PPvx;
    
    
    PPvbl2=sqrt((PPvl2x*PPvl2x)+(PPvl2z*PPvl2z));

    PPvl3x=Ichposx-PPvz;
    PPvl3z=Ichposz-(-PPvx);

    PPvbl3=sqrt((PPvl3x*PPvl3x)+(PPvl3z*PPvl3z));
    glPopMatrix();
  
    

Winkel=acos((Pmichx*PPvx+Pmichz*PPvz)/( (sqrt((Pmichx*Pmichx)+(Pmichz*Pmichz)))* (sqrt((PPvx*PPvx)+(PPvz*PPvz)))));

    
    if(Winkel>0.01f)
    {
        Winkel-=0.01f;
                        if(PPvbl2>PPvbl3)
        Winkel2+=0.01f;
        else
        Winkel2-=0.01f;
    }
     if(Winkel>0.01f)
    {
        Winkel-=0.01f;
        if(PPvbl2>PPvbl3)
        Winkel2+=0.01f;
        else
        Winkel2-=0.01f;
    }
    if(Winkel>0.01f)
    {
        Winkel-=0.01f;
        if(PPvbl2>PPvbl3)
        Winkel2+=0.01f;
        else
        Winkel2-=0.01f;
    }
    



Wenn ihr wisst wie ich das hinkriegen kann oder wie es besser geht oder wenn ihr schon code für sowas wisst bitte ich euch meldet euch

DANKE
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: