Linie zeichnen die X-te



  • Hab da ein Problem!
    Ich möchte ne Linie mit DirectX9 zeichnen... und bekomm das nicht hin weil ich es nicht wirklich verstehe!

    //globale variable
    LPD3DXLINE		*line;
    
    // das steht in InitD3D nach CreateDevice und vor SetRenderSate
    D3DXCreateLine(g_pd3dDevice,line);
    
    //das steht in SetRenderState()
    g_pd3dDevice->SetRenderState(D3DRS_ANTIALIASEDLINEENABLE,true);
    
    //meine DrawLineFunktion die immer beim rendern aufgerufen wird:
    D3DXVECTOR2 p[2]; //stimmt das überhaupt ?
    p[0].x= 10; p[0].y = 300;
    p[1].x = 200; p[1].y = 1000;
    
    das hier geht eh nicht. wenn ich line als ::ID3DXLine deklariere gehts (blick ich eh nit)
    line->Begin();
    line->Draw(p,4,0); (stimmt die 4 ? oder ist da sizeof gefragt?
    line->End();
    

    😕



  • Falls jemand eine andere idee hat wie ich relativ einfach farbige, antialised,
    linien in meinem MFC Projekt hinbekommen kann dann bitte her damit!
    Aber mit DX wärs schon super da ich später auch sprites und sowas brauch.

    Brauch das um eine einfache 2D-Karte zu generieren mit werten die ich von einem Laserscanner bekomme.

    Ich will endlich mal was auf m bilschirm sehn ausser ein Haufen Zahlen 😃



  • Welche Farbe hat denn der Hintergrund, auf den Du zeichnest? Sollte er schwarz sein könnte es schwierig werden, denn Du zeichnest die Linien selbst auch schwarz.

    Desweiteren ist die 4 falsch. Es müsste eine 2 hin, da sich nur 2 Vertices in der Liste befinden.



  • Hi,

    LPD3DXLINE        *line; 
    D3DXCreateLine(g_pd3dDevice,line);
    

    Das ist falsch da LPD3DXLINE bereits als Pointer (ID3DXLine*) definiert ist. Das Objekt sollte wie folgt erstellt werden:

    LPD3DXLINE pLine = NULL; 
    D3DXCreateLine( g_pd3dDevice, &pLine );
    

    bzw.

    ID3DXLine*  pLine=NULL; 
    D3DXCreateLine( g_pd3dDevice, &pLine );
    

    Ciao,
    Stefan



  • EDIT : hab die 2. Antwort noch nit gelesen gahbt danke mal aber ich muss jetzt los... schnell aufn Zug also cya

    rendern tu ich in ner Picture Box.
    ich nehm blauen hintergrund damit man die schwarzen linien sieht 😉

    das geht schon nicht !

    line->Begin();
    

    brauch ich das überhaupt ? ich denk mal schon

    oder muss man das so machen ?
    😃

    ID3DXLine::Begin();
    ID3DXLine::Draw(p,2,0);
    

    Muss jetzt leider übers WE nach hause also nicht enttäuscht sein wenn ich erst Sonntag wieder schreibe.

    Greetz 🕶



  • chr1s schrieb:

    hin weil ich es nicht wirklich verstehe!

    Da solltest du es einfach mal schnellstmöglich verstehen. 😎

    Bye, TGGC (Der Held bei Dir!)


Anmelden zum Antworten