AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Positionierung GLScene

Ein Thema von Salmiak · begonnen am 24. Jan 2012 · letzter Beitrag vom 25. Jan 2012
Antwort Antwort
Salmiak

Registriert seit: 24. Jan 2012
2 Beiträge
 
#1

Positionierung GLScene

  Alt 24. Jan 2012, 14:09
Sehr geehrte Delphi-Gemeine,

mein Problem ist vermutlich mehr als trivial, trotzdem finde ich keine Lösung.
Ich habe in eine GLScene Scene zwei DummyCubes.
Dummycube1 enthält hierbei noch mehrere Childs (Freeform).

Ich weise nun Dummycube1 dem Dummycube2 als Child hinzu, somit entsteht folgende Hierarchie:
Delphi-Quellcode:
Dummycube2
|
|___________Dummycube1
             |
             |__________ n Freeforms im Dummycube1


Die Positionierung (also optisch für den Benutzer) der Freeforms soll sich nicht ändern. Durch das Zuweisen des Dummycubes1 als Child des Dummycubes2 wird aber die Position relativ zum Dummycube2 neu dargestellt.

Ziel des ganzen:
Ich möchte Dummycube2 über Pitch um eine bestimmte Gradzahl drehen. Hierzu setze ich den Dummycube2 an eine bestimmte Position um eine Effekt ala (drehen um eine Gelenk) zu erhalten. Anschließend möchte ich das Parent des Dummycubes1 wieder zurücksetzen, da Dummycube1 durch das Pitch des Dummycube2 gedreht wurde, wurden auch die Childfreeforms des Dummycubes1 mit gedreht. Wenn ich das Parent des Dummycubes1 zurücksetzte sollten die Freeforms also an der neuen Stelle stehen.

Ich hoffe ich konnte mich einigermaßen verständlich ausdrücken.

Herzlichen Dank für Eure Antworten.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#2

AW: Positionierung GLScene

  Alt 24. Jan 2012, 16:32
Das wird so nicht gehen! GLScene positioniert die Objekte anhand der Baumstruktur. Die jeweiligen Transformationen der Hierarchie addieren sich und das geschieht dynamisch. Wenn du ein Objekt in einen anderen Parent verschiebst, erbt es die Transformation. Ziehst du es wieder raus, verliert es diese wieder. Du musst dir wohl ein anderes Konzept überlegen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Salmiak

Registriert seit: 24. Jan 2012
2 Beiträge
 
#3

AW: Positionierung GLScene

  Alt 25. Jan 2012, 11:02
Danke für die Antwort, das war mir so leider nicht bewusst "Asche auf mein Haupt".
Welche "einfache Möglichkeit" habe ich, die Rotation und Bewegung vor der "Entnahme" des Parents diese umzurechen?.


1000 X Danke für Ihre Antworten
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#4

AW: Positionierung GLScene

  Alt 25. Jan 2012, 12:43
Delphi-Quellcode:
var
  matrix: TMatrix;
  saveParent: TGLBaseSceneObject;
begin
  DummyCube2.ResetRotations;
  DummyCube2.Position.SetToZero;
  saveParent := DummyCube1.Parent;
  DummyCube1.Parent := DummyCube2;
  DummyCube2.PitchAngle := 30;
  matrix := DummyCube1.AbsoluteMatrix;
  DummyCube1.Parent := saveParent;
  DummyCube1.AbsoluteMatrix; // wegen eines Bugs in GLScene muss hier die Matrix neu aufgebaut werden
  DummyCube1.AbsoluteMatrix := matrix;
end;
Besser wäre es aber, du baust das Drehgelenk gleich fest in die Hierarchie ein.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz