Einzelnen Beitrag anzeigen

Peter666

Registriert seit: 11. Aug 2007
357 Beiträge
 
#1

Rechteck skalieren

  Alt 30. Sep 2016, 13:29
Hi,

ich habe gerade eine ziemliche Blockade, bei der Lösung eines Problems. Für ein OpenGL Projekt rendere ich einen Text, indem ich eine Bild mit Buchstaben auf die Anzeige bringe. Für jeden Buchstaben habe ich die Position in der Textur (src) und möchte diese auf einen Bereich (Dest) zeichnen. Über ein Rechteck (Bounds) beschränkte ich die Textur. Jetzt müsste ich aber auch Src im Verhältnis zu den angegebenen Bounds beschränken, denn sonst stretched die Zeichenroutine den Buchstaben in das Zielrechteck und das schaut logischerweise bescheuert aus.

Delphi-Quellcode:
var
  Dest, Bounds, Src: TRectF;
begin
  Dest := RectF(100, 100, 200, 200);
  Bounds := RectF(110, 90, 190, 210);

  Src := RectF(1000, 1000, 1032, 1032);

  Dest.Left := Max(Dest.Left, Bounds.Left);
  Dest.Top := Max(Dest.Top, Bounds.Top);
  Dest.Right := Min(Dest.Right, Bounds.Right);
  Dest.Bottom := Min(Dest.Bottom, Bounds.Bottom);
Im Prinzip müsste ich Bounds ja auf einen Bereich zwischen 0..1 umrechnen und dann Src damit bearbeiten, oder? Hat jemand eine Idee? Irgendwie stelle ich mich da gerade etwas dusselig an.
  Mit Zitat antworten Zitat