Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Rotiertes Rechteck skalieren (vergrößern)? (https://www.delphipraxis.net/178731-rotiertes-rechteck-skalieren-vergroessern.html)

Namenloser 24. Jan 2014 05:42

AW: Rotiertes Rechteck skalieren (vergrößern)?
 
Transformations-Matrizen sind aber eigentlich schon die perfekte Lösung dafür.

Perlsau 24. Jan 2014 06:04

AW: Rotiertes Rechteck skalieren (vergrößern)?
 
Zitat:

Zitat von Namenloser (Beitrag 1245121)
Transformations-Matrizen sind aber eigentlich schon die perfekte Lösung dafür.

Wenn man sich damit auskennt ... wenn nicht, was dann (ohne gleich als schwachsinnig zu gelten)?

Sir Rufo 24. Jan 2014 08:37

AW: Rotiertes Rechteck skalieren (vergrößern)?
 
Es gibt ja in der Delphi-Referenz durchsuchenSystem.Types schon fertige Typen.

Allerdings wurden die so nach und nach entwickelt und sind aktuell wohl auch benutzbar :)
(unter XE3 konnten die quasi gerade mal die Koordinaten speichern)
Delphi-Quellcode:
TVector3D
XE3 XE4 XE5
Delphi-Quellcode:
TMatrix3D
XE3 XE4 XE5

Bjoerk 24. Jan 2014 15:38

AW: Rotiertes Rechteck skalieren (vergrößern)?
 
Nach Euler kann man aus einer räumlichen Drehung auch 3 ebene Drehungen machen:
Delphi-Quellcode:
  Result := RotateX(Value, Alpha);
  Result := RotateY(Result, Beta);
  Result := RotateZ(Result, Gamma);
P.X bleibt erhalten, wenn man um die X-Achse dreht usw..

Wenn du um den Mittelpunkt drehen und zoomen willst kannst du die Koordinaten um die Differenz der CenterPoints shiften:
Delphi-Quellcode:
  P1 := Polyeder.CenterPoint;
  Polyeder.Stretch(ScaleX, ScaleY, ScaleZ);
  P2 := Polyeder.CenterPoint;
  Polyeder.Shift(P1.X - P2.X, P1.Y - P2.Y, P1.Z - P2.Z);
  Polyeder.Rotate(Alpha, Beta, Gamma);


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:58 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz