AGB  ·  Datenschutz  ·  Impressum  







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

Geschwindigkeit umkehren

Ein Thema von DelphiUser1 · begonnen am 10. Nov 2012 · letzter Beitrag vom 21. Nov 2012
Antwort Antwort
Seite 1 von 2  1 2      
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: Geschwindigkeit umkehren

  Alt 11. Nov 2012, 03:07
Erinnert mich fast an http://einklich.net/rec/eins.htm
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Geschwindigkeit umkehren

  Alt 11. Nov 2012, 03:21
Zugegeben: Mathematische Wipkipedia Artikel tendieren teilweise stark zu unnötig komplexen Formeln und Symbolgeilheit (oftmals wirklich für das breite Publikum unangemessen verklausuliert). Hier finde ich es aber doch noch recht okay - sind ja wirklich nur Grundrechenarten Wenn man die Formeln ein wenig auseinanderklamüsert sieht man, dass das an sich ziemlich popelig ist. Schaut auf den ersten Blick nur gewaltig aus.
In diesem Fall nicht nötig: Aber wenn man sich einfach mal vor Augen hält, dass eine Summenformel nichts weiter ist, als eine for-Schleife mit der Formel dahinter im Rumpf, verlieren zumindest diese schon mal ihre abschreckende Wirkung =)

Die Seite ist aber eine ziemlich herrliche Satire! Manchmal fühlt man sich echt so
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
DelphiUser1

Registriert seit: 15. Sep 2012
56 Beiträge
 
#3

AW: Geschwindigkeit umkehren

  Alt 11. Nov 2012, 15:41
Danke für die Lösung. Ich habe jetzt mal angefangen mit der Kollision
Delphi-Quellcode:
if (Kreis[b].y+Kreis[b].Height)>Image3.Height then //Kreis kommt von oben
      Kreis[b].speedy := -Abs(Kreis[b].speedy);
und das funktioniert auch alles soweit, aber als ich versucht habe die kollision von unten und den Seiten zu schreiben, kam ich nicht mehr so ganz weiter. mit diesem code ging es nicht:

Delphi-Quellcode:
if Kreis[b].x+Kreis[b].Width>Image3.Width then //
      begin
      Kreis[b].speedy := -Abs(Kreis[b].speedy);
      Kreis[b].speedx:= Abs(Kreis[b].speedx);
      end;
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Geschwindigkeit umkehren

  Alt 11. Nov 2012, 15:46
bei den Seitenprüfungen musst Du x invertieren // wahrscheinlich ein Flüchtigkeitsfehler.
Du kannst links rechts zusammen und oben unten ebenfalls zusammen behandeln.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
DelphiUser1

Registriert seit: 15. Sep 2012
56 Beiträge
 
#5

AW: Geschwindigkeit umkehren

  Alt 11. Nov 2012, 16:16
Was genau ist denn mit "x invertieren" gemeint?
Soll ich die speedx invertieren?
und wieso kann ich rechts und links und oben und unten als eins behandeln. Funktioniert zumindest nicht
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: Geschwindigkeit umkehren

  Alt 11. Nov 2012, 17:06
ich meinte etwas in der Art ....
Delphi-Quellcode:
if ((Kreis[b].y+Kreis[b].Height)>Image3.Height) or (Kreis[b].y <=0 ) then
      Kreis[b].speedy := - Kreis[b].speedy;

if ((Kreis[b].x+Kreis[b].Width)>Image3.Width) or (Kreis[b].x <= 0) then
      Kreis[b].speedx := - Kreis[b].speedx;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
DelphiUser1

Registriert seit: 15. Sep 2012
56 Beiträge
 
#7

AW: Geschwindigkeit umkehren

  Alt 11. Nov 2012, 19:42
Mit diesem Code passiert leider genau das, was ich vermeiden wollte:
Der Ball prallt wieder in die Richtung, aus der er kam und nicht "Einfallswinkel=Ausfallswinkel"
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Geschwindigkeit umkehren

  Alt 11. Nov 2012, 23:32
Danke für die Lösung. Ich habe jetzt mal angefangen mit der Kollision
Delphi-Quellcode:
if (Kreis[b].y+Kreis[b].Height)>Image3.Height then //Kreis kommt von oben
      Kreis[b].speedy := -Abs(Kreis[b].speedy);
und das funktioniert auch alles soweit, aber als ich versucht habe die kollision von unten und den Seiten zu schreiben, kam ich nicht mehr so ganz weiter. mit diesem code ging es nicht:

Delphi-Quellcode:
if Kreis[b].x+Kreis[b].Width>Image3.Width then //
      begin
      Kreis[b].speedy := -Abs(Kreis[b].speedy);
      Kreis[b].speedx:= Abs(Kreis[b].speedx);
      end;
1) Was willst du eigentlich mit dem Abs bezwecken?
2) So schwer ist es nicht. Es ist einfach nur Logik und hat nichts mit Programmieren zu tun. Logikarbeit nehme ich dir aber nicht ab, weil's der Punkt ist, wo du am meisten lernen kannst.
  Mit Zitat antworten Zitat
DelphiUser1

Registriert seit: 15. Sep 2012
56 Beiträge
 
#9

AW: Geschwindigkeit umkehren

  Alt 11. Nov 2012, 23:39
1.Mir wurde erklärt das "abs" die Richtung absolut umkehrt und irgendwie sinnvoller wäre.
2.ja das ist richtig, ich will es auch gerne alleine schaffen, aber so ganz peile ich es noch nicht.
x und y zeigen die Position auf x und y Achsen an aber geht diese Position jetzt von der Mitte des Kreises aus oder wieso verrechnen wir diese Koordinaten mit der höhe?
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#10

AW: Geschwindigkeit umkehren

  Alt 11. Nov 2012, 23:52
Zitat:
Die Kreise bleiben stehen wenn sie jetzt das Objekt berühren...
Der Code mit + with war von Dir und lies darauf schließen dass x und y die linke obere Ecke eines Rechteckes um Deinen Kreis darstellen. Im letzen Post schreibst Du x und y wären die Mitte es Kreises, in diesem Fall bleibst Du bei den Bedingungen zwangsläufig kleben wenn z.B. der rechte Halbkreis den rechten Rand beinhaltet und die Geschwindigkeit klein genug ist.
Hier musst Du einfach die Grenzen Deinen Gegebenheiten anpassen und rechts Width/2 zu x addieren und links statt 0 Width/2 verwenden, entsprechend für die y Koordinaten ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  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 13:59 Uhr.
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-2025 by Thomas Breitkreuz