AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Rotiertes Rechteck skalieren (vergrößern)?
Thema durchsuchen
Ansicht
Themen-Optionen

Rotiertes Rechteck skalieren (vergrößern)?

Offene Frage von "Bjoerk"
Ein Thema von Zacherl · begonnen am 23. Jan 2014 · letzter Beitrag vom 24. Jan 2014
Antwort Antwort
Seite 2 von 2     12   
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#11

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

  Alt 24. Jan 2014, 04:42
Transformations-Matrizen sind aber eigentlich schon die perfekte Lösung dafür.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#12

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

  Alt 24. Jan 2014, 05:04
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)?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

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

  Alt 24. Jan 2014, 07:37
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)
TVector3D XE3 XE4 XE5
TMatrix3D XE3 XE4 XE5
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#14

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

  Alt 24. Jan 2014, 14:38
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);
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 21:39 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