AGB  ·  Datenschutz  ·  Impressum  







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

Zusammenstoß von Kugeln

Ein Thema von braingrenade · begonnen am 28. Jun 2004 · letzter Beitrag vom 4. Jul 2004
Antwort Antwort
Seite 4 von 7   « Erste     234 56     Letzte »    
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#31

Re: Zusammenstoß von Kugeln

  Alt 30. Jun 2004, 18:24
so, ich hab das ganze mal durchgerechnet/gezeichnet:

Die pysikalische Seite hab ich mir nicht angeschaut, aber rein mathematisch müsste es so hinhauen.
Die Bilder beziehen sich auf die Billiard-Page, die auf der ersten Seite dieses Threads genannt wurde.

EDIT: bmp --> jpg
Miniaturansicht angehängter Grafiken
bild3_106.jpg   bild2_210.jpg  
Peter Enenkel
blubb
  Mit Zitat antworten Zitat
Markus
(Gast)

n/a Beiträge
 
#32

Re: Zusammenstoß von Kugeln

  Alt 30. Jun 2004, 18:26
Bitte poste die Bilder nächstes mal als JPG

Ich denk da würden sich einige Modem-User freuen...
  Mit Zitat antworten Zitat
Benutzerbild von braingrenade
braingrenade

Registriert seit: 30. Okt 2002
Ort: Neufra
274 Beiträge
 
Delphi 6 Personal
 
#33

Re: Zusammenstoß von Kugeln

  Alt 30. Jun 2004, 18:55
Wow vielen Dank !

Nun hab ich meinen Fehler gefunden, ich hatte das VektorD = VektorB - VektorA vergessen,
aber leider versteh ich was an deinem Bild nicht, nähmlich wie kann ich VektorA=VektorD/|VektorD|*a ausrechnen ,ich kann ja nicht einfach den Vektor durch eine Zahl teilen oder?
Let the sun beat down upon my face
Stars fill my dream
I am a traveller of both time and space
To be where I have been ________________ Such A Surge
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#34

Re: Zusammenstoß von Kugeln

  Alt 30. Jun 2004, 19:05
hatte mal nen kugel stoß simulations proggi gemacht um zu testen wie das geht ( 2D )
für n billard proggi
Angehängte Dateien
Dateityp: zip kugeln_116.zip (221,9 KB, 33x aufgerufen)
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#35

Re: Zusammenstoß von Kugeln

  Alt 30. Jun 2004, 19:07
moin,

das ist ein bisschen Vektorrechnung

Ein Vektor vermittelt folgende Informationen: Richtung, Betrag (und Angriffspunkt).
Wenn man einen VektorX hat, dann ist VektorX / |VektorX| der sogenannte Einheitsvektor zu X.
Der Einheitsvektor hat immer die Länge 1, d.h. |Einheitsvektor|=1. Der Vektor wird damit auf seine Richtung reduziert.

Multipliziert man nun im gegebenen Fall den Einheitsvektor von VektorD mit der Strecke a so erhält man den Vektora.
Peter Enenkel
blubb
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#36

Re: Zusammenstoß von Kugeln

  Alt 30. Jun 2004, 19:13
Im zweiten Link auf Seite 1 wird das Ganze übrigens im Kapitel Einheitsvektoren behandelt. Die dazugehörige Funktion nennt sich dort "Normalize".

PS: Du kannst einen Vektor beliebig mit einem Skalar(=normale Zahl) multiplizieren/dividieren. Problematisch wirds erst wenn du zwei Vektoren mit einander verarbeiten willst ... normale Multiplikation gibt es da nicht, sondern nur das sogenannte Skalarprodukt.
Peter Enenkel
blubb
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#37

Re: Zusammenstoß von Kugeln

  Alt 30. Jun 2004, 19:16
Man kann Vektoren natürlich nurch eine reelle Zahl dividieren. Ist ja nicht anderes wie eine Multiplikation mit dem Kehrwert der Zahl.
Mann nennt diese Zahl dann auch "Skalar", da sie den Vektor "skaliert" (in seiner Länge verändert). Dividiert man nun einen Vektor durch seine Länge ist der Ergebnisvektor 1 Einheit lang.
Bei einer normalen Zahl wäre das ja auch z.B.: 5/|5| = 1; da |5| = 5. Somit hätte man quasi einen 1-dimensionalen Vektor auf die Länge 1 "normiert".

Das nur als kleinen Einwurf
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#38

Re: Zusammenstoß von Kugeln

  Alt 30. Jun 2004, 19:21
Zitat von xineohp:
normale Multiplikation gibt es da nicht, sondern nur das sogenannte Skalarprodukt.
...und das Kreuzprodukt (nur im R³), das dyadische Produkt, im R² das komplexe Produkt, und im 4-dimensionalen Raum das Quaternionen- oder hyperkomplexe Produkt.
Zu dem lässt sich das Skalarprodukt auf Matrizenrechnung zurückführen, wo man sieht, dass es theoretisch unendlich viele verschiedene Skalarprodukte gibt, aber für normal sterbliche eigentlich ausschließlich das triviale von Bedeutung ist.
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#39

Re: Zusammenstoß von Kugeln

  Alt 30. Jun 2004, 19:31
Ich dachte halt das Skalarprodukt würde hier erstmal reichen ... außerdem hatte ich das ganze andere Zeugs noch nicht im Unterricht
Peter Enenkel
blubb
  Mit Zitat antworten Zitat
Benutzerbild von braingrenade
braingrenade

Registriert seit: 30. Okt 2002
Ort: Neufra
274 Beiträge
 
Delphi 6 Personal
 
#40

Re: Zusammenstoß von Kugeln

  Alt 30. Jun 2004, 19:47
Ok dank eurer Hilfe bin ich nun soweit :
Delphi-Quellcode:
      vbuf := subvectors(chspr[i].v,chspr[i2].v) ;

       alpha := arccos(dotproduct(chspr[i].v,vbuf)/((magnitude(chspr[i].v)*magnitude(vbuf))));
       lengthv := cos(alpha)*magnitude(chspr[i].v);
       v1 := scalevector(normalize(vbuf),lengthv);

       alpha := arccos(dotproduct(chspr[i2].v,vbuf)/((magnitude(chspr[i2].v)*magnitude(vbuf))));
       lengthv := cos(alpha)*magnitude(chspr[i2].v);
       v2 := scalevector(normalize(vbuf),lengthv);

       vbuf := addvectors(v1,v2); // vbuf ist am Ende immer (0,0), v1 und v2 sind "Gegenvektoren"

       chspr[i].v := subvectors(chspr[i].v,vbuf);
       chspr[i2].v := addvectors(chspr[i2].v,vbuf);
Aber vbuf ist am Ende immer (0,0) und die Bahnen der Kugeln verändern sich deshalb nicht
Let the sun beat down upon my face
Stars fill my dream
I am a traveller of both time and space
To be where I have been ________________ Such A Surge
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 7   « Erste     234 56     Letzte »    


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 00:59 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