Autor Beitrag
Green
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 283

Windows XP Home
Delphi 6 Enterprise
BeitragVerfasst: Fr 08.09.06 08:30 
Frage zu OpenGL:

Also ich habe folgendes Tutorial von delphigl gelesen:
Abseits eckiger Welten

Nun ist jetzt meine Frage wie ich jetzt eine Rundung mit einer bestimmten Grad angabe machen kann. Zum Beispiel einen Kreis definieren und sagen ich will das die Kurve 72° von einem Kreis mit Radius 2,5 sein soll...

gibts da irgendwie ne funktion oder sowas? oder hat jemand da was schönes geschrieben?


Zuletzt bearbeitet von Green am So 10.09.06 20:43, insgesamt 1-mal bearbeitet
delphijanka
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 151

WinXP
D 2009 Arc., Java, C
BeitragVerfasst: So 10.09.06 18:46 
du kannst die Funktion Chord benutzen, wenn der Kreis am Ende mit einer Linie abgeschnitten sein soll, oder wenn es sich rein um eine Kurve handelt oder jegliche Linien, kannst du die Funktion problemlos seblst schreiben, indem du Funktionen MoveTo, LineTo und Trygonometrische benutzt, um die richtige Entfernung zu errechnen.
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: So 10.09.06 19:33 
MoveTo und LineTo kenn ich bei OpenGl gar nicht. :?!?: :mrgreen:

Kanns sein, dass du überlesen hast, dasses um OpenGL geht?

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Green Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 283

Windows XP Home
Delphi 6 Enterprise
BeitragVerfasst: So 10.09.06 20:43 
Scheinbar schon ...
Phobeus
ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1280

Linux (FC6), WinXP Pro (Box)
D6 Pers, D7 Pro, FPC 2.x
BeitragVerfasst: So 10.09.06 21:51 
Und was hindert dich daran diese unter OpenGL zu implementieren? Einen Anfagsposition und eine Zielposition verwendet man auch dort...

_________________
"Menschen sterben nicht wenn man sie zu Grabe trägt, sondern wenn sie ihre Träume verlieren..."
Green Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 283

Windows XP Home
Delphi 6 Enterprise
BeitragVerfasst: So 10.09.06 21:55 
hm, also den 'Kreis' nicht mit Bezier, sondern selber berechnen?

das wär ne idee aber is das nich ziemlich performence lastig??
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mo 11.09.06 03:19 
Ich glaube, hier werden zwei Dinge vermengt, die einander konträr sind:
Bezier-Kurven sind polynomiale Kurven n-1. Grades, während ein Kreis Die Menge aller Punkte ist, die zu einem Punkt M (Mittelpunkt) den Abstand r (Radius) haben, ist ;-) Soviel zur Mathe dahinter ...

Ferner lässt (im Komplexen) ein Kreis darstellen als Menge aller Abbildungen x |--> e^(2*Pi*i*x), x el. |R, f(x) el. C.

Aber nun zu der Frage: Mit Bezier-Kurven allein wirst Du KEINEN Kreisbogen dargestellt bekommen (da es kein Polynom endlichen Grades gibt, dass als Ersatz eines Wurzelausdruckes genutzt werden kann.

Die Berechnung der Punkte auf der Kugel\Kreis-Peripherie ist aber nicht allzu kompliziert ... Einfach r² = sqrt(x²+y²+z²) nach x,y oder z umstellen ;-) und Dir dann beliebig viele Punkte interpolieren ^^

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Green Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 283

Windows XP Home
Delphi 6 Enterprise
BeitragVerfasst: Mo 11.09.06 06:25 
Dann wäre mein Problem damit ja gelöst, danke leutz :)