Autor Beitrag
>M@steR<
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 288
Erhaltene Danke: 3



BeitragVerfasst: Do 24.08.06 01:59 
Gelöscht


Zuletzt bearbeitet von >M@steR< am Di 17.09.13 00:47, insgesamt 1-mal bearbeitet
>M@steR< Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 288
Erhaltene Danke: 3



BeitragVerfasst: Do 24.08.06 02:18 
Gelöscht


Zuletzt bearbeitet von >M@steR< am Di 17.09.13 00:47, insgesamt 1-mal bearbeitet
_frank_
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 343
Erhaltene Danke: 1

Win XP
Delphi 3 Prof / Turbo Delphi Explorer
BeitragVerfasst: Do 24.08.06 04:32 
ich würde sagen so:

ausblenden Delphi-Quelltext
1:
2:
  //arctan(Gegenkathete/Ankathete)
  edit1.text:=FloatToStr(RadToDeg(arctan(10/10)));//=> 45° (0,0 -> 10,10)

_________________
EB FE (die wahrscheinlich kürzeste Endlosschleife der Welt :) )
BA 01 00 00 00 52 EB 09 BB 4D 11 86 7C FF D3 EB 0D E8 F2 FF FF FF 63 68 61 72 6D 61 70 00 C3
>M@steR< Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 288
Erhaltene Danke: 3



BeitragVerfasst: Do 24.08.06 15:35 
Gelöscht


Zuletzt bearbeitet von >M@steR< am Di 17.09.13 00:47, insgesamt 1-mal bearbeitet
>M@steR< Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 288
Erhaltene Danke: 3



BeitragVerfasst: Do 24.08.06 15:49 
Gelöscht


Zuletzt bearbeitet von >M@steR< am Di 17.09.13 00:47, insgesamt 1-mal bearbeitet
Jetstream
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 222



BeitragVerfasst: Do 24.08.06 22:28 
Zitat:
Ich brauche den code zur berechnung des abprallwinkels wenn eine kugel mit einer nicht geradn laufbahn auf ein nicht gerade lienie trifft.
nicht gerade ? Das heißt bei mir krumm und schief, oder meinst du damit, dass die Wand nicht parallel zu einer der beiden Achsen sein muß ?
Zitat:
Ich hab mal ne skitze gezeichnet
Und was macht die rote Linie da ?
Zitat:
ämmm ja oder so aber ich möchte ja von winkel -> Koordinaten kommen!!!
Was genau hast du denn schon errechnet ?

Die momentane Position der Kugel ?
Den momentanen Richtungsvektor der Kugel ?
Die Position der Wand ?
Die Lage der Wand ?
Punkt des Aufpralls ?
Den Winkel des Aufpralls ?
>M@steR< Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 288
Erhaltene Danke: 3



BeitragVerfasst: Do 24.08.06 22:34 
Gelöscht


Zuletzt bearbeitet von >M@steR< am Di 17.09.13 00:47, insgesamt 1-mal bearbeitet
Masterhawk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 92

Win 2000,Win XP
D6 Pers
BeitragVerfasst: Do 24.08.06 22:43 
Wie willst du denn zwei bestimmte Koordinaten bekommen....es gibt unendlich viele...
Du könntest höchstens die neue Richtung (Flug-/Rollbahn) der Kugel berechnen, wenn du die alte kennst, und somit durch eine Fkt. auf die >>AKTUELLEN<< Koordinaten kommen.

P.S.: Ich komm grad von 'nem Geburtstag, also seid nicht zu streng mit dem was ich schreibe....^^

MfG [url]www.masterhawk-studios.de[/url]
>M@steR< Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 288
Erhaltene Danke: 3



BeitragVerfasst: Do 24.08.06 22:46 
Gelöscht


Zuletzt bearbeitet von >M@steR< am Di 17.09.13 00:47, insgesamt 1-mal bearbeitet
Jetstream
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 222



BeitragVerfasst: Do 24.08.06 23:22 
Ich hab mal schnell ne (häßliche) Skizze gemacht.
user defined image
Die Kugel kommt angerollt und prallt unter dem Winkel alpha von der Wand ab.
Du siehst, dass beta = 180 - 2*alpha ?
Sagen wir, die Kugel hat den Richtungsvektor (-2,-1) und wird die Wand in Punkt (1/3) treffen unter alpha = 35°,
so ist beta = 180-70 = 110°.
Du musst jetzt nur noch den Richtungsvektor (-2,-1) um 110 Grad drehen, und die Kugel dann vom Punkt des Abpralls (1/3)
mit diesem Vektor weiterlaufen lassen.

Du rechnest für den Vektor erst den Winkel des eingehenden Vektors aus, arctan(y/x), ziehst davon dann beta ab, und hast den ausgehenden Winkel gamma.
Im Beispiel: Gamma = arctan(-1/-2) - 110 = -83.435° (relativ zur X-Achse)

Dann musst du aus Gamma die zwei Koordinaten berechnen, so dass die Kugel hinterher die gleiche Geschwindigkeit hat wie vorher. Du nimmst erstmal an, der X-Wert sei eins, dann rechnest du den Y-Wert aus. Ganz einfach mit Y = tan(gamma).
Y = tan -83.435° = 5.411

Also fliegt die Kugel mit dem Vektor (1/5.411) weiter.
Dieser Vektor repräsentiert aber nicht die Geschwindigkeit der Kugel, dazu musst du ihn erst normieren (durch seine Länge teilen, dann hat er die Länge eins) und anschließend mit der alten Geschwindigkeit malnehmen (Betrag von (-2/-1)).

Hoffe das war verständlich.
Selbstverständlich mache ich nachts um kurz nach zwölf auch Fehler :P
>M@steR< Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 288
Erhaltene Danke: 3



BeitragVerfasst: Fr 25.08.06 00:04 
Gelöscht


Zuletzt bearbeitet von >M@steR< am Di 17.09.13 00:48, insgesamt 1-mal bearbeitet
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Fr 25.08.06 00:16 
Das is zeugs aus der 12ten klasse gymnasium :| der Betrag eines Vektors war doch sqrt(a²+b²) oder? sqrt=square root=quadratwurzel
Wenn dem so ist, musst du den neuen Vektor durch die Berechnung oben Teilen, dann wird sein Betrag 1. Dann mit der Geschwindigkeit multiplizieren, die der Betrag des ursprungsvektors ist. Mal kurz Wiki... ja. genau.
de.wikipedia.org/wik...or#Rechenoperationen
Der Betrag eines Vektors ist die quadrat wurzel aus Vektor mal Vektor, wobei das mal in dem Fall ein "Skalarprodukt-Mal" ist und kein normales Mal. Was ich oben geschrieben hab, stimmt.
Hab ich erwähnt, dass ich grad FERIEN hab?? Schämt euch! ;)

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
>M@steR< Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 288
Erhaltene Danke: 3



BeitragVerfasst: Fr 25.08.06 00:22 
Gelöscht


Zuletzt bearbeitet von >M@steR< am Di 17.09.13 00:48, insgesamt 1-mal bearbeitet
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Fr 25.08.06 00:37 
Ja verstehe. Hm. Also kurz gesagt: Lies dir mal den Wikipedia Link durch, der sagt dir alles über Vektoren. (Auch wenn mal wohl manchmal auf unter-links klicken muss >.> )
Musst du aber nicht, da wir dir ja bereits alle Formeln genannt haben, und eine genaue Beschreibung wie du das ganze zusammen basteln müsstest. Iiich.... denk mich da jetzt nich rein. Es is halb zwei. *gähn*.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
>M@steR< Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 288
Erhaltene Danke: 3



BeitragVerfasst: Fr 25.08.06 00:41 
Gelöscht


Zuletzt bearbeitet von >M@steR< am Di 17.09.13 00:48, insgesamt 1-mal bearbeitet
>M@steR< Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 288
Erhaltene Danke: 3



BeitragVerfasst: Fr 25.08.06 02:00 
Gelöscht


Zuletzt bearbeitet von >M@steR< am Di 17.09.13 00:48, insgesamt 1-mal bearbeitet
>M@steR< Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 288
Erhaltene Danke: 3



BeitragVerfasst: Fr 25.08.06 03:07 
Gelöscht


Zuletzt bearbeitet von >M@steR< am Di 17.09.13 00:48, insgesamt 2-mal bearbeitet
Jetstream
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 222



BeitragVerfasst: Fr 25.08.06 12:10 
Soooo ... grade aufgestanden ... schaumermal was du da gemacht hast ...

Zitat:
x1, y1 = vorherige Geschwindigkeit und richtung der kugel
x2, y2 = Ergibnis der berechnungen
Also Geschwindigkeitsvektor vorher/hinterher.
Zitat:
die kugel setzt ihren weg mit x1 und y1 fort.
Meinstest du nicht grade das sei x2/y2 ?
Zitat:
a := arctan2(50 - 90,300 - 50)*180/pi;
Warum nimmst du nicht den arctan aus Delphi ?
Einfach die Unit "Math" einbinden und schon geht das. Fällt mir nur grade so auf ...

Wo berechnest du eigentlich den Punkt des Aufpralls ?
Benutzt du dafür Vektoren ?
Berücksichtigst du dabei den Radius der Kugel ?
>M@steR< Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 288
Erhaltene Danke: 3



BeitragVerfasst: Sa 26.08.06 16:58 
Gelöscht


Zuletzt bearbeitet von >M@steR< am Di 17.09.13 00:48, insgesamt 1-mal bearbeitet
JayEff
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2971

Windows Vista Ultimate
D7 Enterprise
BeitragVerfasst: Sa 26.08.06 18:22 
Also.
Statt Power(x,2) würd ich x*x schreiben, geht schneller und übersichtlicher ;)
Um den Radius kommst du nicht rum, was das Canvas damit zu tun hat, weis ich nicht.
Um Vektoren kommst du nicht rum, weil du ohne keine Bewegung basteln kannst. (x1,y1 z.B. ergeben ja zusammen einen Vektor)
Deinen Code kann ich nicht kompilieren, da ich nicht weis, was er tun soll. Muss er in einen Timer? Muss er in einen Button? Was für Komponenten brauch ich alles?
Ich werd mich selbst mal ran setzen und versuchen, so ne Berechnung anzustellen.

_________________
>+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.