Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 11:22

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Schiefer Kegel
BeitragVerfasst: Mo Jul 25, 2005 09:17 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 09, 2005 13:48
Beiträge: 117
Wohnort: Sankt Augustin
Hallo,

seit einiger Zeit bastele ich an folgendem Problem:

ich möchte einen Kegel zeichnen dessen oberer Mittelpunkt nicht zentriert über dem unteren steht. Es soll ein Kegel entstehen, dessen eine Seite gerade und dessen andere Seite schräg auf die Spitze zulaufen. Leider habe ich mit meinen mathematischen Kenntnissen bisher keinen geeigneten Ansatz gefunden um ein solches Gebilde zu zeichnen. Vielleicht hat aber schon einmal jemand hier im Forum ein ähnliches Problem gehabt und könnte mir mit Anregungen/Beispielen auf die Sprünge helfen?

Im Attachment habe ich mal eine vereinfachte 2D Konstruktion des Kegels in der Seitenansicht und Draufsicht gezeichnet.

Danke


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 25, 2005 10:34 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Etwas Vorgefertigtest gibt es dazu nicht. In den Gluts existiert ein Code mit dem man einen Kegel zeichnen kann. Aber keinen Schiefen. Du müsstest es also komplett von Hand machen. Was in dem Beispiel sogar noch recht einfach zu lösen sein dürfte. Wichtig ist dabei nur, dass deine beiden Kreise die gleiche Anzahl an Punkten haben. Also zum Beispiel alle 10°. Entsprechend haben deine Seiten auch die selbe Flächenanzahl.

Hier ein kleines Beispiel in 2D welches sich ohne große Schwirigkeiten auf 3D ummappen lassen sollte.

Code:
  1.  
  2. var
  3.   Idx, N: Integer;
  4.   A: Single;
  5. begin
  6.   N := 8;
  7.   glTranslatef(200, 200, 0);
  8.  
  9.   // Große Kreis
  10.   glBegin(GL_LINE_LOOP);
  11.     for Idx := 1 to N do begin
  12.       A := 2 * PI * Idx / N;
  13.       glVertex2f(Sin(A) * 150, Cos(A) * 100);
  14.     end;
  15.   glEnd;
  16.  
  17.   // Kleine Kreis
  18.   glBegin(GL_LINE_LOOP);
  19.     for Idx := 1 to N do begin
  20.       A := 2 * PI * Idx / N;
  21.       glVertex2f(Sin(A) * 50 + 100, Cos(A) * 50);
  22.     end;
  23.   glEnd;
  24. end;


Mit diesem kleinen Code habe ich alle wichtige Punkte gezeichnet. Nämlich den Kreis oben und den Kreis unten. Wenn du jetzt in 2D eine Fläche zwischen Punkt 1 u. 2 des oberen Kreises und Punkt 2 u. 1 des Unteren Kreises zeichnest. Hast du deine Seitenflächen. Ich verschiebe lediglich die Punkte des kleineren Kreises um 100 nach Rechts. Oder wohin auch immer du möchtest. Aber vorsicht in 3D musst du mit kleineren Werten abeiten. Wenn du das aus der Schleife in eine Berechnungsmethode packst und die Punkte dann so abfragst sollte das vollkommen ausreichen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Jul 25, 2005 15:24 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Nov 13, 2004 11:00
Beiträge: 229
Wohnort: Steinhude
wobei du, wenn eine seite gerade sein soll soweit ich das sehe wohl eher der großen kreis verschieben musst


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jul 26, 2005 03:47 
Offline
DGL Member
Benutzeravatar

Registriert: Do Jun 09, 2005 13:48
Beiträge: 117
Wohnort: Sankt Augustin
Danke, das hat mir sehr geholfen. Ich habe den schiefen Kegel jetzt implementiert.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 16 Queries | GZIP : On ]