AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Image rotieren lassen und die breite ändern
Thema durchsuchen
Ansicht
Themen-Optionen

Image rotieren lassen und die breite ändern

Ein Thema von Christian18 · begonnen am 14. Sep 2008 · letzter Beitrag vom 15. Sep 2008
Antwort Antwort
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#1

Image rotieren lassen und die breite ändern

  Alt 14. Sep 2008, 18:43
Hallo,

ich lasse ein Image auf meiner Form rotieren. Das mache ich so:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
  var wx, wy: Real;
begin
  DoubleBuffered:=True;

  Winkel:=0;

  // Radius berechnen
  wx:=(ClientWidth / 2) - Image1.Width;
  wy:=(ClientHeight / 2) - Image1.Height;

  Image1.Left:=Round((Cos(Winkel) * wx) + ClientWidth / 2 - (Image1.Width / 2));
  Image1.Top:=Round((Sin(Winkel) * wy) + ClientHeight / 2 - (Image1.Height / 2));
end;

procedure TForm1.Timer1Timer(Sender: TObject);
  var wx, wy: Real;
  k:integer;
begin
  Winkel:=Winkel - 0.005;

  // Radius berechnen
  wx:=(ClientWidth / 2) - Image1.Width;
  wy:=(ClientHeight / 2) - Image1.Height;

  Image1.Left:=Round((Cos(Winkel) * wx) + ClientWidth / 2 - (Image1.Width / 2));
  Image1.Top:=Round((Sin(Winkel) * wy) + ClientHeight / 2 - (Image1.Height / 2));
end;
Wenn das Image sich am größten Punkt x befindet, dass soll die Image breite 0 sein.
Wenn das Image sich am niedrigsten Punkt x befindet, dann soll die Image breite auch 0 sein.

Wenn das Image sich am größen Punkt y befindet, dann soll das Image die volle breite haben. Also aus der original datei.
Wenn sich das Image am niedrigsten Punkt y befindet, dann soll es auch die volle breite haben.

Wie kann ich das machen?

MFG Christian18
  Mit Zitat antworten Zitat
Christian18

Registriert seit: 9. Dez 2003
Ort: Hamburg
1.279 Beiträge
 
#2

Re: Image rotieren lassen und die breite ändern

  Alt 15. Sep 2008, 16:11
push
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

Re: Image rotieren lassen und die breite ändern

  Alt 15. Sep 2008, 16:32
Also .. du bewegst es bereits auf der Form, das schent zu funktionieren - oder?

Die Breite ändern in abhängigkeit des winkels...

Du must dir vorher die rginale Bildhöhe speichern, dann müsste es so ungefähr gehen:
Delphi-Quellcode:

Image1.Width = orginalbreite * sin(Winkel) * sin(Winkel);
// bzw.
Image1.Width = orginalbreite * 0.5 * (1 + sin(Winkel));
Wenn ich dich richtig verstanden habe
  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 16:22 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