Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 03:46

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



OpenGL - Methode anderer Klasse

Discussion on OpenGL - Methode anderer Klasse within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Mar 2013
Posts: 2
Received Thanks: 0
Question OpenGL - Methode anderer Klasse

Moin,

ich versuche mal mein Problem darzustellen, was an sich schon nicht einfach ist. Vieles, was ich für unwichtig halte, habe ich aus dem Code entfernt. Wenn also was unklar ist, einfach nochmal nachhaken

Was ich habe ist ein riesiger Haufen Code (nicht von mir). Erstellt wird hierbei ein OpenGL Fenster. In diesem Fenster soll ich nun einige geometrischen Figuren darstellen. Das Fenster wird in einer Header definiert und dann in der entsprechenden .cpp aufgerufen.

Quote:
class Display1 : Drawable
{
public:
//Constructor and deconstructor
Display1(int DisplayWidth, int DisplayHeight);
~Display1();

//Draw function
virtual void draw();
};
Quote:
Display1:isplay1(int DisplayWidth, int DisplayHeight):
{
}

Display1::~Display1()
{
}

void Display1:: draw()
{
}
Und der Aufruf in der main.cpp

Quote:
Display1 display_1(800, 800);
In der Display1.cpp gibt es eine drawfunction. Wenn ich in dieser nun etwas in OpenGL schreibe, wird das auch brav angezeigt.
Was ich nun aber machen soll, ist zb dass ich einen Kreis in einer weiteren Klasse definiere und dann eine Methode der Klasse aufrufe, in welche ich den Ort und die Größe des Kreises übergebe.
Ich habe also eine Klasse "Kreis":

Quote:
class Kreis
{
public:
Kreis (float x, float y, int a, int b);
~Kreis ();

void draw (float x, float y, int a, int b);
};
Und in der .cpp habe ich dann das:

Quote:
void Kreis::draw (float x, float y, int a, int b)
{
cout << "Kreis gemalt mit x,y und start- und endwinkel: " << x << y << a << b << endl;

glPushMatrix();
glColor3ubv(red);
glTranslatef(0.0,0.-10,0);
glBegin(GL_QUADS);
glVertex2f(0, 200);
glVertex2f(200, 200);
glVertex2f( 200, 400);
glVertex2f( 0, 400);
glEnd();
glPopMatrix();
}


Kreis::Kreis (float x, float y, int a, int b)
{
}

Kreis::~Kreis()
{
}
Und in der main.cpp (das würde ich denke ich aber später mal in eine eigene Funktion packen):

Quote:
Kreis *kreis1 = new Kreis(0.5, 0.5, 90, 270);
kreis1->draw(0.5, 0.5, 90, 270);
delete kreis1;
In der Konsole wird mir auch die Ausgabe aus der Kreis::draw Methode angezeigt, aber im OpenGL Fenster seh ich davon nichts.

Irgendwie müste ich glaube ich die Methode in Display1::draw ausführen, damits im Fenster auch gezeichnet wird, aber ich weiß nicht wie. Vllt ist der Gedanke auch totaler Blödsinn. Ich hoffe, einer von euch hat da eine Idee.

PS.: Bevor jmd meckert, ich weiß, dass da kein Kreis gezeichnet wird, das ist nur zu Testzwecken
Mr Marston is offline  
Old 03/17/2013, 12:13   #2


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
Kreis zum Member des Displays machen und dort in der Zeichnen-Methode zeichnen?
MrSm!th is offline  
Old 03/17/2013, 16:54   #3
 
elite*gold: 0
Join Date: Mar 2013
Posts: 2
Received Thanks: 0
Quote:
Originally Posted by MrSm!th View Post
Kreis zum Member des Displays machen und dort in der Zeichnen-Methode zeichnen?
Ja, das funktioniert schonmal auf jeden Fall.

Aber jetzt werde ich in Zukunft noch weitere Displayklassen erstellen. So müsste ich ja für jede Displayklasse eine eigene Kreismethode erstellen, das will ich aber nicht.

Hast du da noch eine Idee?
Mr Marston is offline  
Reply


Similar Threads Similar Threads
[Methode]Lvln mit M2Bob in andere Methode
08/30/2012 - Metin2 Guides & Templates - 24 Replies
Hey leute Das ist mein Erster TuT Also am Anfang startet ihr M2bob Schreibt eine Ansage z.B: !Wer lvlt mich in OTM hab auch umhänge Euch pnt einer und will euch lvln ihr trefft euch irgendwo bei OTM du fragst ihn dann welches lvl er ist (Er sollte Mindestens lvl 40 sein mit Kg) Der nimmt dich in GRP
Biete Mathehilfe bis zur 10. Klasse Real/ 9.Klasse Haupt
03/13/2012 - School & Education - 0 Replies
Wenn ihr Probleme mit einer aufgabe habt, schickt mir eine PM. Kostet nur 1eGold. Vielleicht auch nichts :D Kommt ganz auf die aufgaben drauf an.
OpenGL
04/06/2011 - Technical Support - 4 Replies
Huhu, kann ich den "OpenGL Mode" irgendwie nachinstallieren?, da wenn ich das spiel Minecraft starte ein fehler kommt das mein treiber für die ATIRadeon 9200 SE nicht aktuell sei bzw. etwas mit OpenGL wäre ich freue mich auf hilfe .NoThx
Volkswechsel alte Klasse(Classic)->neue Klasse(Cata)
01/30/2011 - World of Warcraft - 13 Replies
Hi, Ich würde meinen Untoten Magier gerne zu einem Goblin Magier verändern. Ich weis auch, dass Goblins Magier sein können aber ich finde keine 100% sicheren Infos ob man auch Untoter->Goblin changen kann! Kennt sich da einer aus? Außerdem wird ja der Ruf der alten Heimatstadt auf die neue gewechselt, also sollte in meinem Fall doch nur von Unterstadt->Goblinstadt geändert werden oder? Was ist das langsame Goblinreittier(60%) und was das Schnelle(100%) zu dem meine Skelettpferde...



All times are GMT +2. The time now is 03:46.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.