[C++] Simpele manier om lijnen te tekenen

Pagina: 1
Acties:
  • 129 views sinds 30-01-2008

  • Battle Bunny
  • Registratie: Oktober 2001
  • Laatst online: 02-02 21:41
In Visual Basic had ik een hele simpele manier om DirectX 7 aantespreken (DirectDraw). Helaas heb ik hiervoor nog geen enkele tutorial gevonden... Wel heb ik zat over Direct3D, maar dan moet ik meteen lopen rommelen met vertexes enzo, en dat wil ik niet. Iets anders dan DirectX vind ik ook best, als het maar goed simpel is (dus 1 command voor initialize, daarna simpele manier om pixels/lijnen te plaatsen). Getpixel en PutPixel heb ik al naar gekeken, maar dan moet je eerst een venster hebben, en da's misschien nog net ff te ver gegrepen :)

Samenvatting: Wa's het makkelijkst?

  • whoami
  • Registratie: December 2000
  • Laatst online: 13:47
Welke C++ compiler gebruik je? Is het voor een DOS of voor een Windows programma?

https://fgheysels.github.io/


  • Battle Bunny
  • Registratie: Oktober 2001
  • Laatst online: 02-02 21:41
Welke C++ compiler gebruik je? Is het voor een DOS of voor een Windows programma?
De bedoeling is dat ik het compile met MS VC++ (6.0). Het is een Win32 app, maar het hoeft niet persé een Windows form te hebben.

Ik heb trouwens wel al meerdere examples/"easy to use" libs gevonden, maar die geven ALLEMAAL 1 of meer foutmeldingen tijdens compilen :'(

  • whoami
  • Registratie: December 2000
  • Laatst online: 13:47
Als je het met MFC wilt doen:

Je zult eerst een Device Context van uw form moeten maken. Die Device Context, heeft enkele member functies (waaronder LineTo) die het mogelijk maken om op uw form te tekenen of te schrijven.

De code hiervoor ziet er ongeveer zo uit:
code:
1
2
HDC hDevContext = GetDC(hWnd);
hDevContext.Line(x1, y1, x2, y2);

Disclaimer: het is al een hele tijd geleden dat ik nog VC++ en MFC gedaan heb, dus zal die code wel niet 100% correct zijn, maar het zou je toch in de goeie richting moeten duwen.

https://fgheysels.github.io/


  • Battle Bunny
  • Registratie: Oktober 2001
  • Laatst online: 02-02 21:41
Als je het met MFC wilt doen:

Je zult eerst een Device Context van uw form moeten maken. Die Device Context, heeft enkele member functies (waaronder LineTo) die het mogelijk maken om op uw form te tekenen of te schrijven.
Thanks, ik zal eens kijken. Nu nog uitkijken naar een manier om DirectDraw te gebruiken... Just as a test.

  • whoami
  • Registratie: December 2000
  • Laatst online: 13:47
Op dinsdag 21 mei 2002 09:29 schreef Battle_Bunny het volgende:
Getpixel en PutPixel heb ik al naar gekeken, maar dan moet je eerst een venster hebben, en da's misschien nog net ff te ver gegrepen :)
Dat 'venster' dat je moet hebben, is volgens mij gewoon een 'viewport' waarbinnen uw lijn of pixel moet komen.
Door gebruik te maken van een viewport kun je uw coördinaten relatief tov uw viewport gaan definieren.

https://fgheysels.github.io/


  • Battle Bunny
  • Registratie: Oktober 2001
  • Laatst online: 02-02 21:41
Dat 'venster' dat je moet hebben, is volgens mij gewoon een 'viewport' waarbinnen uw lijn of pixel moet komen.
Door gebruik te maken van een viewport kun je uw coördinaten relatief tov uw viewport gaan definieren.
Met venster bedoelde ik dat ik nog niet goed genoeg ben met C om zo'n Windows venster (ook al is ie leeg) naar voren te toveren. Natuurlijk heb je zo'n gave wizzard, maar die poept (voor mij) onbegrijpbare code uit.

en ik ben geen u :P

Verwijderd

Op dinsdag 21 mei 2002 10:56 schreef Battle_Bunny het volgende:

[..]

Met venster bedoelde ik dat ik nog niet goed genoeg ben met C om zo'n Windows venster (ook al is ie leeg) naar voren te toveren. Natuurlijk heb je zo'n gave wizzard, maar die poept (voor mij) onbegrijpbare code uit.

en ik ben geen u :P
Mischien kan je dan het best gewoon van het begin af aan beginnen en gewoon de basis van win32 programming leren. Dan leer je hoe je een win32 venster op moet roepen. Op zich is dit niet zo heel veel werk. Je zou het beste gewoon alles in 1 viewport class kunnen stoppen die je dan als een soort van wrapper gebruikt. Verder hoef je niet veel meer te leren dan alleen hoe je een scherm aanmaakt. Dat scherm dient dan als viewport waarin je je DC kan initialiseren. Als je dit gedaan hebt kan je zelfs OpenGL ofzo gaan initialiseren :P

  • whoami
  • Registratie: December 2000
  • Laatst online: 13:47
Op dinsdag 21 mei 2002 10:56 schreef Battle_Bunny het volgende:

[..]

Met venster bedoelde ik dat ik nog niet goed genoeg ben met C om zo'n Windows venster (ook al is ie leeg) naar voren te toveren. Natuurlijk heb je zo'n gave wizzard, maar die poept (voor mij) onbegrijpbare code uit.
Dan wil je eigenlijk een DOS programma maken die een lijn tekent ofzo? Ik snap niet meer wat je wilt...

https://fgheysels.github.io/


  • Battle Bunny
  • Registratie: Oktober 2001
  • Laatst online: 02-02 21:41
Mischien kan je dan het best gewoon van het begin af aan beginnen en gewoon de basis van win32 programming leren. Dan leer je hoe je een win32 venster op moet roepen. Op zich is dit niet zo heel veel werk. Je zou het beste gewoon alles in 1 viewport class kunnen stoppen die je dan als een soort van wrapper gebruikt. Verder hoef je niet veel meer te leren dan alleen hoe je een scherm aanmaakt. Dat scherm dient dan als viewport waarin je je DC kan initialiseren. Als je dit gedaan hebt kan je zelfs OpenGL ofzo gaan initialiseren :P
Ik snap wel dat ik eigenlijk stap voor stap zou moeten gaan leren, maar zo werk ik niet. Ik heb samen met een vriend een polygonen-functie gemaakt (alleen nog punten moven in 3d). Dit is gemaakt in VB en is gewoon BAGGER traag... Daarom wil ik dus die meuk naar C++ converten (heb ik al gedaan, btw) om te kijken of dat sneller is. Als dat echt heel veel scheelt, gaan we verder met C++, en de volgende stappen schrijven. Daarom wil ik nu eigenlijk helemaal niets behalve een simpele manier van die *** lijnen op het scherm te krijgen (om te kijken of ik het goed doe :)). Snappu? Het voorbeeld wat ik had gevonden voor DirectDraw in VB kan door elke newbie in VB geplakt worden, en het werkt. Daarbij roep je gewoon ddraw.line ofzo, en klaar. Dat meot hier toch ook zijn?

  • Battle Bunny
  • Registratie: Oktober 2001
  • Laatst online: 02-02 21:41
Dan wil je eigenlijk een DOS programma maken die een lijn tekent ofzo? Ik snap niet meer wat je wilt...
OK, overnieuw. Ik wil een een Win32 app maken die een zut berekeningen uitvoert. De lijnen tekenen is op het moment alleen nodig voor de debugging. Daarom moet het simpel zijn. Het liefst een copy & paste tutorial ofzo :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 13:47
Op dinsdag 21 mei 2002 11:12 schreef Battle_Bunny het volgende:

Ik snap wel dat ik eigenlijk stap voor stap zou moeten gaan leren, maar zo werk ik niet. Ik heb samen met een vriend een polygonen-functie gemaakt (alleen nog punten moven in 3d). Dit is gemaakt in VB en is gewoon BAGGER traag... Daarom wil ik dus die meuk naar C++ converten (heb ik al gedaan, btw) om te kijken of dat sneller is. Als dat echt heel veel scheelt, gaan we verder met C++, en de volgende stappen schrijven. Daarom wil ik nu eigenlijk helemaal niets behalve een simpele manier van die *** lijnen op het scherm te krijgen (om te kijken of ik het goed doe :)). Snappu? Het voorbeeld wat ik had gevonden voor DirectDraw in VB kan door elke newbie in VB geplakt worden, en het werkt. Daarbij roep je gewoon ddraw.line ofzo, en klaar. Dat meot hier toch ook zijn?
Tja, als jij niet stap voor stap wilt leren, dan vrees ik er een beetje voor.
Leer eerst eens gewoon C++, leer dan hoe je een Windows app kunt maken in C++ en leer dan DirectX ofzo. Leren programmeren is niet iets waarmee je in een uurtje ofzo klaar bent. Het is eerder een voortdurend proces.

Met een copy/paste tutorial kun je uw probleem wel oplossen, maar ik denk niet dat je echt zult begrijpen wat je gedaan hebt. Eigenlijk bedrieg je alleen maar uw eigen.

https://fgheysels.github.io/


  • Battle Bunny
  • Registratie: Oktober 2001
  • Laatst online: 02-02 21:41
Tja, als jij niet stap voor stap wilt leren, dan vrees ik er een beetje voor.
Leer eerst eens gewoon C++, leer dan hoe je een Windows app kunt maken in C++ en leer dan DirectX ofzo. Leren programmeren is niet iets waarmee je in een uurtje ofzo klaar bent. Het is eerder een voortdurend proces.

Met een copy/paste tutorial kun je uw probleem wel oplossen, maar ik denk niet dat je echt zult begrijpen wat je gedaan hebt. Eigenlijk bedrieg je alleen maar uw eigen.
Ik weet hoe het leren van een programmeer taal werkt (kan VB, Pascal en ASP). Daar ben ik nu ook in kleine mate mee bezig, maar erg gericht op Wiskunde. Daarom wil ik nu even niets te maken hebben met die complexe graphics zut, maar toch heb ik het nodig, snap je? Zoals ik het wil:

VB "porten" naar C++ (math only) => testen => meer leren en sneller maken => code afmaken => meer functies toevoegen => graphics leren.

Deze volgorde is voor mij het best.

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

google maar naar tutorials
dit hoeft niet via P&W iig

Doet iets met Cloud (MS/IBM)

Pagina: 1

Dit topic is gesloten.