Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

15.06.2008, 20:47

Übungsaufgabe 2.5.6

hallo,

ic versuche grad die Übungsaufgabe 2.5.6.2

Da soll aus einem gegebenen Dreieck das mit DrawPrimitivUP gezeichnet wird ein Vierreck gemacht werden.

habe deswegen einen vierten Vertex hinzugefügt und als zweiten Parameter bei DrawPrimitivUP eine 2 für 2 Dreiecke angegeben.

hier mal die codeschnippsel

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
struct SVertex
{
    tbVector3           vPosition;  // Position des Vertex

    DWORD               dwColor;    // Farbe des Vertex

    static const DWORD  dwFVF;      // Vertexformat (statisch)

};

SVertex             g_aTriangleVertex[4];

    // Initialisieren des Dreiecks

    g_aTriangleVertex[0].vPosition  = tbVector3(-1.0f,  1.0f, 0.0f);
    g_aTriangleVertex[1].vPosition  = tbVector3( 1.0f, -1.0f, 0.0f);
    g_aTriangleVertex[2].vPosition  = tbVector3(-1.0f, -1.0f, 0.0f);
    g_aTriangleVertex[3].vPosition  = tbVector3( 1.0f,  1.0f, 0.0f);
    g_aTriangleVertex[0].dwColor    = tbColor(1.0f, 0.0f, 0.0f);
    g_aTriangleVertex[1].dwColor    = tbColor(0.0f, 1.0f, 0.0f);
    g_aTriangleVertex[2].dwColor    = tbColor(0.0f, 0.0f, 1.0f);
    g_aTriangleVertex[3].dwColor    = tbColor(g_fTime, 0.0f, 1.0f);

    if(FAILED(hResult = g_pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLESTRIP,  // Dreiecksliste

                                                      2,                    // 1 Dreieck

                                                      g_aTriangleVertex,    // Vertexdaten

                                                      sizeof(SVertex))))


Er zeichnet mir jetzt auch zwei Dreiecke, aber sie ergeben kein Viereck, das sind 2 rechtwinklige Dreiecke wobei das eine links seinen rechtenwinkel hat und das andere links, nach oben fehlt halt ein stück

weis jemand was ich falsch mache?

BlazeX

Alter Hase

Beiträge: 478

Wohnort: DD

Beruf: Maschinenbau-Student

  • Private Nachricht senden

2

15.06.2008, 21:08

Sieh dir mal die Nummern der Vertices bei den Dreiecken, auf Seite 142 an. Vor allem, welche Vertices das 2. Dreieck ergeben. ;)

Das was du machst sieht bestimmt so hier aus?

Quellcode

1
2
3
4
5
6
7
8
9
10
11
|\                     /|
|  \                 /  |
|    \             /    |
|      \         /      |
|        \     /        |
|          \/           |
|                       |
|                       |
|                       |
|                       |
|_______________________|

3

15.06.2008, 21:11

Müsste glaube ich so aussehen:

C-/C++-Quelltext

1
2
3
4
5
g_aTriangleVertex[0].vPosition  = tbVector3(-1.0f,  1.0f, 0.0f);
g_aTriangleVertex[1].vPosition  = tbVector3( 1.0f,  1.0f, 0.0f);
g_aTriangleVertex[2].vPosition  = tbVector3( 1.0f, -1.0f, 0.0f);
g_aTriangleVertex[3].vPosition  = tbVector3(-1.0f, -1.0f, 0.0f);
 

Werbeanzeige