AGB  ·  Datenschutz  ·  Impressum  







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

Mausbewegung => Bildbewegung...

Ein Thema von NeoDeluxe · begonnen am 18. Feb 2003 · letzter Beitrag vom 21. Feb 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von NeoDeluxe
NeoDeluxe

Registriert seit: 4. Dez 2002
Ort: Behind the Firewall
240 Beiträge
 
Delphi 7 Personal
 
#1

Mausbewegung => Bildbewegung...

  Alt 18. Feb 2003, 20:35
Moin.
Ich will in meinem Programm so machen, dass wenn man die Maus schneller bewegt das das Bild sich auch schneller bewegt, Wie geht das?
Alex
  Mit Zitat antworten Zitat
janjan

Registriert seit: 16. Jan 2003
Ort: Bonn ("links über Königswinter ")
240 Beiträge
 
Delphi 4 Standard
 
#2
  Alt 18. Feb 2003, 20:37


Könntest du eventuell deine Frage etwas präziser stellen...
  Mit Zitat antworten Zitat
Benutzerbild von NeoDeluxe
NeoDeluxe

Registriert seit: 4. Dez 2002
Ort: Behind the Firewall
240 Beiträge
 
Delphi 7 Personal
 
#3
  Alt 18. Feb 2003, 20:44
Also gut. Falsch geschrieben, haste Recht. Also ich glaub ihr alle hab als Kind mit Magneren gespielt. Jeder weist doch das positiven Polen sich gegenseitig abstossen. Genau so einen Effekt will ich realiesieren. Also der Mauszeiger soll ein "Magnet" sein, und das Bild.
Ist es jetzt vieleicht etwas verständlicher?
Alex
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#4
  Alt 18. Feb 2003, 21:09
Was hat das mit der Bewegung zu tun? Meine physikalischen Grundlagen meinen sich zu enstsinnen, dass es nur mit der Entfernung zu tun hat. Teste mit nem Timer alle X ms die Entfernung, und je nach der Enfernung (mit der Wurzel von ihr) bestimmst du den Einfluss, denn der Magnet hat und verschiebst das Bild...

...das ganze dürfte aber ziemlich ruckeln...
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von NeoDeluxe
NeoDeluxe

Registriert seit: 4. Dez 2002
Ort: Behind the Firewall
240 Beiträge
 
Delphi 7 Personal
 
#5
  Alt 19. Feb 2003, 06:57
Soooooooooooooooooooooooooooooooooooooong! Sorry, hab nichts kapiert kannst du bitte etwas genauer erklären.=>Quelltext
Danke.

Grüße NeoDeluxe
Alex
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#6
  Alt 19. Feb 2003, 22:39
Hi,

bin mir nicht sicher ob ich Dich verstanden habe, aber, Du kannst im "OnMouseMove" des Formulares, über Zugriff auf die X/Y-Koordinaten der Maus, Top/Left des Image setzen.

Könnte dann etwa so aussehen:
Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Image1.Top := Y;
  Image1.Left := X;
end;
Und das ganze hängt dann natürlich von der Geschwindigkeit der Maus ab! Ich denke das ist es was Du willst, hoff ich.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von NeoDeluxe
NeoDeluxe

Registriert seit: 4. Dez 2002
Ort: Behind the Firewall
240 Beiträge
 
Delphi 7 Personal
 
#7
  Alt 20. Feb 2003, 15:38
Zitat:
Ich denke das ist es was Du willst, hoff ich.
Tja, da ich Außländer bin wird mich hier nicht jeder verstehen. Aber das macht nichts, ich bin daran gewöhnt . Also dein Effekt "Daniel B" war in der richtigen Richtung. Aber du hast genus das Gegenteil von dem was ich wollte gemacht hast. Also die Maus und das Bild müssen sich nicht "anziehen" sondern wie Magneten abstossen. Hast du bestimmt in Physik gelernt, dass positiven Polen sich gegenseitig abstossen. Und positiven und negativen Polen sich gegenseitig anziehen. Also ich muss sozusagen "positiv geladene" Objekte haben: das Bild und den Mauszeiger!
Alex
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#8
  Alt 20. Feb 2003, 16:31
Hai NeoDeluxe,

mal als Gedankenmodel:

Du ermittelst den Mittelpunkt deines Bildes.
Jetzt ermittelst Du die Position der Maus.
Jetzt berechnest Du den Abstand zwichen den beiden.

Wenn dieser abstand unter einen bestimmten Wert kommt verschiebst Du dein Image von der Maus weg bis der mindestabstand wieder erreicht ist.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von NeoDeluxe
NeoDeluxe

Registriert seit: 4. Dez 2002
Ort: Behind the Firewall
240 Beiträge
 
Delphi 7 Personal
 
#9
  Alt 20. Feb 2003, 17:04
Soooooooooooooooooooooooooooooooooooooong! Sorry, hab nichts kapiert kannst du bitte etwas genauer erklären.=>Quelltext
Danke.

Grüße NeoDeluxe
Alex
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#10
  Alt 20. Feb 2003, 17:49
Zitat von NeoDeluxe:
Soooooooooooooooooooooooooooooooooooooong! Sorry, hab nichts kapiert kannst du bitte etwas genauer erklären.=>Quelltext
Danke.

Grüße NeoDeluxe

Na gut... hier der Quelltext (ist nur so auf die schnelle geschrieben)

Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
var
 bild_mitte : TPoint;
 min_abstand : Int64;
 abstand,
  dif_x,
  dif_y : Extended;
 links,
  oben : Integer;
begin
 bild_mitte.x := Image1.Left + (Image1.Width div 2);
 bild_mitte.y := Image1.Top + (Image1.Height div 2);
 min_abstand := 300;
 links := 0;
 oben := 0;
 dif_x := bild_mitte.x - x;
 dif_y := bild_mitte.y - y;
 if (dif_x < 0) then
  begin
   dif_x := dif_x * -1;
  end;
 if (dif_y < 0) then
  begin
   dif_y := dif_y * -1;
  end;
 abstand := Round(sqrt((dif_x * dif_x) + (dif_y * dif_y))); //Abstand der Maus zum Bild;
 if (abstand < min_abstand) then
  begin
   if (y <> bild_mitte.y) then
    begin
     if (y < bild_mitte.y) then
      begin
       oben := -1;
      end
     else
      begin
       oben := +1;
      end;
    end;
   if (x <> bild_mitte.x) then
    begin
     if (x < bild_mitte.x) then
      begin
       links := -1;
      end
     else
      begin
       links := +1;
      end;
    end;
   image1.Left := image1.left - links;
   image1.top := image1.top - oben;
  end;
end;
Was ich mache:

Ich ermittele den Mittelpunkt des Bildes.

Delphi-Quellcode:
 bild_mitte.x := Image1.Left + (Image1.Width div 2);
 bild_mitte.y := Image1.Top + (Image1.Height div 2);
Dann berechen ich die entfernung zur maus:
 abstand := Round(sqrt((dif_x * dif_x) + (dif_y * dif_y))); //Abstand der Maus zum Bild; Satz des Pyt: a² + b² = c²

Und jetz prüfe ich nur noch ob die Maus oberhalb, unterhalb, links oder rechts vom Bild ist und verschiebe es entsprechend.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 20:52 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