Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

31

28.07.2011, 12:51

Aber er hat deine Formeln offensichtlich nicht verstanden, darum versuch ichs nochmal so zu erklären...

32

28.07.2011, 15:08

Hallo Zusammen

So, es hat geklappt =) nach langem googeln, grübeln und kurz vor der Verzweiflung, habe ich es doch noch hingebracht.

Hier meine Lösung:

C#-Quelltext

1
2
3
4
for (int i = 0; i < c; i++)
{
      Vector3 point = mp + (((float)Math.Cos(2 * Math.PI * i / c) * ov1) * r) + (((float)Math.Sin(2 * Math.PI * i / c) * ov2) * r);
}


c = Anzahl Segmente
mp = Mittelpunkt des Kreises
ov1 = Achsenvektor 1
ov2 = Achsenvektor 2
r= Radius des Kreises

Danke für eure Hilfe und vor allem für die Geduld.
Gruss Master Chief


ps.: Falls etwas an meiner SCHLEIFE nicht stimmen sollte, bitte gebt mir euren Senf dazu =)

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

33

28.07.2011, 15:57

Zeig mal, wie Du ov1 und ov2 berechnest :)

34

28.07.2011, 16:05

C#-Quelltext

1
2
3
Vector3 en = this.GetSceneNormal();
Vector3 ov1 = Vector3.Normalize(Vector3.Subtract(poc, mp));
Vector3 ov2 = Vector3.Cross(en, ov1);


Die Methode GetSceneNormal() gibt mir einen Vektor zurück. Je nach dem wo sich die Maus im Raum befindet.
Im Normalfall wird hier ein Normalenvektor einer Ebene des Koordinatensystems (0,0,1 oder 0,1,0 oder 1,0,0) zurückgegeben. Es kann aber sein, dass sich die Maus auf einer bereits existierenden Ebene (von einem Objekt in der Szene) befindet, dann wird die Normale dieser Ebene zurückgegeben.

Die Variable poc ist ein beliebiger Punkt auf dem Kreis, welcher entstehen soll. Und die Variable mp ist der Mittelpunkt des Kreises.

Der Benutzer muss 2 Klicks machen, zuerst gibt er den Mittelpunkt des Kreises an (mp). Mit dem 2. Klick (poc) gibt er den Radius an.

Werbeanzeige