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.
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:
var
Idx, N:Integer;
A:Single;
begin
N :=8;
glTranslatef(200,200,0);
// Große Kreis
glBegin(GL_LINE_LOOP);
for Idx :=1to N dobegin
A :=2*PI* Idx / N;
glVertex2f(Sin(A)*150,Cos(A)*100);
end;
glEnd;
// Kleine Kreis
glBegin(GL_LINE_LOOP);
for Idx :=1to N dobegin
A :=2*PI* Idx / N;
glVertex2f(Sin(A)*50+100,Cos(A)*50);
end;
glEnd;
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.
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.