Autor |
Beitrag |
GTA-Place
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: Fr 03.11.06 18:55
Hallo,
ich habe nach langer Zeit auch mal wieder eine Frage, die diesmal in den physikalischen Bereich geht. Dazu mal ein schönes Bild aus meinem aktuellen Projekt:
Nun stellt sich mir die Frage, wie ich herausfinde, ob der Turm umfällt, was in diesem Beispiel ja passieren sollte. delfiphan meinte vor langer Zeit mal (als ich ihn danach gefragt hab), ich könne jede Ebene für sich betrachten und wenn der Schwerpunkte der Steine darüber außerhalb der Fläche liegt, stürzt der Turm. Entweder ich habe das falsch verstanden, oder es geht so wirklich nicht (er sprach noch von konvexen Hüllen und so... xD).
Habt ihr da eine Idee?
Grüße
GTA-Place
Moderiert von Christian S.: Topic aus Sonstiges (Delphi) verschoben am Fr 03.11.2006 um 17:56
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Zuletzt bearbeitet von GTA-Place am Mo 26.01.09 23:03, insgesamt 1-mal bearbeitet
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Fr 03.11.06 18:58
vom rein logischem her würd ich sagen der turm stürtzt und die schuld würde ich dem stein ganz oben links zuschieben, da er sich außerhalb des schwerpunktes (einzelner stein in der mitte) befindet.
Wie du das programmiertechnisch am einfachsten löst -> don´t know
Ich werd das einfach überprüfen indem ich cinema 4d frag =)
LG
Stefan
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
GTA-Place 
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: Fr 03.11.06 19:01
ZeitGeist87 hat folgendes geschrieben: | vom rein logischem her würd ich sagen der turm stürtzt und die schuld würde ich dem stein ganz oben links zuschieben, da er sich außerhalb des schwerpunktes (einzelner stein in der mitte) befindet. |
Soweit war ich jetzt auch schon xD.
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
ZeitGeist87
      
Beiträge: 1593
Erhaltene Danke: 20
Win95-Win10
Delphi 10 Seattle, Rad Studio 2007, Delphi 7 Prof., C++, WSH, Turbo Pascal, PHP, Delphi X2
|
Verfasst: Fr 03.11.06 19:03
tut doch immer wieder gut sich bestätigt zu fühlen^^
Programmiertechnisch würd ich sagen ists einiger Aufwand..
Viel Spaß =)
_________________ Wer Provokationen, Ironie, Sarkasmus oder Zynismus herauslesen kann soll sie ignorieren um den Inhalt meiner Beiträge ungetrübt erfassen zu können.
|
|
cuejo
      
Beiträge: 142
Win XP
Delphi 7 Personal und 2005 PE
|
Verfasst: Fr 03.11.06 19:08
GTA-Place hat folgendes geschrieben: |
Nun stellt sich mir die Frage, wie ich herausfinde, ob der Turm umfällt, was in diesem Beispiel ja passieren sollte. |
Wie das geht weiß ich auch nicht, aber ich denke nicht, dass der Turm in diesem Fall umfällt, ganz eifach deswegen, weil die drei Reihen darüber genügend Gegengewicht bringen, um dem Ungleichgewicht in der obersten Reihe entgegenzuwirken. In den drei Reihen befinden sich 9 Klötze und wirken dem Übergewicht von nur einem Klotz entgegen. Außerdem musst du den Schwerpunkt bedenken. Der liegt wahrscheinlich noch auf der Breite des Mittleren Klotzes in der 5. Reihe. Ja ich denke du musst die Schwerpunkte berechnen um eine Vorhersage zu treffen.
P.S.: Ich habe meine Vermutung empirsch beweisen können 
_________________ Computer sind dumm, aber fleißig. Deshalb arbeite ich so gerne damit.
|
|
Chryzler
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Fr 03.11.06 19:11
Ich hatte mal was von einer 'Newton.dll' gehört.. Geht das damit nicht?
|
|
Martok
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Fr 03.11.06 19:11
Also wenns ganz brutal werden soll: Newton Game Dynamics.
Aber sonst hat delfiphan schon recht. Schwierig wirds nur, wenn der mittlere Stein weg ist.
Aber: in deinem Beispiel würde er nicht fallen. Der Schwerpunkt des Teils über dem Kipp-Stein liegt irgendwo in der 2. Reihe von oben. Da fällt noch nix.
Was du machen könntest: betrachte den Turm von 2 Seiten, also so (Anhang 1) und berechne die Mittelpunkte der Polygone, die sich aus den Außenkanten ergeben (Wenn innen was fehlt, kann er ja nicht fallen). Damit hast du deinen Schwerpunkt in 2 Achsen geortet. Für die 3. Achse (von oben) würde ich mal mit der Turm-Mitte rechnen. Dann kannst du Prima auf Stein da oder nicht prüfen. Aber immer nur die Außenkanten benutzen.
Zur Optimierung könnte man es so machen, dass Schichten, bei denen noch alle Steine existieren, gar nicht erst überprüft werden.
Zu Polygonen gibts hier ne Funktion: www.efg2.com/Lab/Graphics/PolygonArea.htm (Centroid heißt der Punkt)
Edit: da schreibt man jetzt ne Viertelstunde lang, und dann waren auch noch andere schneller 
Einloggen, um Attachments anzusehen!
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Zuletzt bearbeitet von Martok am Fr 03.11.06 19:17, insgesamt 1-mal bearbeitet
|
|
GTA-Place 
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: Fr 03.11.06 19:21
@Chryzler und Matrok: Das geht mit der Newton.dll bestimmt, aber ich will das ganz ohne extra Komponenten machen (deshalb auch kein OpenGL, etc.).
@Martok: Den Mittelpunkt der beiden Seiten? Das klingt interessant, ich guck mal, was ich da machen kann.
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
Lannes
      
Beiträge: 2352
Erhaltene Danke: 4
Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
|
Verfasst: Fr 03.11.06 19:31
Hallo,
kannst Du C ?
Dann könnte das für dich interessant sein, Seite 220:
www.haw-hamburg.de/r.../dankert/ctutor3.pdf
_________________ MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
|
|
GTA-Place 
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: Fr 03.11.06 19:37
Ich eigne mir C++ grad an. Danke.
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
Horst_H
      
Beiträge: 1654
Erhaltene Danke: 244
WIN10,PuppyLinux
FreePascal,Lazarus
|
Verfasst: Fr 03.11.06 19:48
Hallo,
es geht nur darum ob der gemeinsame Schwerpunkt der Steine oberhalb des einen Steins ausserhalb dieses Steines zu liegen kommt.
Also Stein fuer Stein Masse und Schwerpunktkoordiante bestimmen und immer zusammenfassen. Aus zwei mach einen(reduziert).
{Drehmoment um XsRed ist 0,Finger unter dem Schwerpunkt und alles bleibt ruhig)
(Xs1-XsRed)*m1=(XsRed-Xs2)*m2 (einmal links einmal rechtsdrehend)
Xs1*m1-XsRed*m1=XsRed*m2-Xs2*m2
Xs1*m1+Xs2*m2=XsRed*(m2+m1)| mRed =m1+m2
XsRed=(Xs1*m1+Xs2*m2)/mRed
Ysred = m1*Ys1+m2*Ys2/mRed)
Zsred = m1*Zs1+m2*Zs2/mRed
Also paarweise zusammenfassen, dann diese zusammen .. (2,4,8...bis alles in einem Schwerpunkt versammelt ist)
Das hat den Vorteil einen höheren Rechengenauigkeit(bei zigtausenden von Steinen)
Wenn man nacheinander immer 1 Stein mit hinzunimmt geht es aber hier auch.
Wenn dann XsRed,YsRed in dem oberen Rechteck des unteren Steines ist, so ist alles in Ordnung.
Xs des Quaders = Summe der X der Eckpunkte / Anzahl Eckpunkte(=
Ys,Zs analog.
Gruss Horst
|
|
GTA-Place 
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: Fr 03.11.06 19:55
Sorry, Horst_H, ich bin schon bei deinem ersten Satz gescheitert. Könntest du das bitte einfacher erklären?
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
Horst_H
      
Beiträge: 1654
Erhaltene Danke: 244
WIN10,PuppyLinux
FreePascal,Lazarus
|
Verfasst: Fr 03.11.06 20:07
Hallo,
der einzelne Stein bildet mit seinen Kanten eine Wippe.
Innerhalb der Kanten kannst soviel drücken wie Du willst da wackelt nichts.
Wenn die Kraft aber ausserhalb der Kanten wirkt, kann man wippen oder wie beim Stuhl kippeln.
Nimm doch ein dickes Buch und lege zwei Bleistifte parallel in geringem Abstand darunter (wie im Beispiel mit den Steinen ungefähr 1/3 von links und von rechts, lieber enger zusammen).
Dann nimmst du schweres anderes Bch und legst es in verschiedenen Position. Irgendwann wird es zum kippen kommen, wenn der gemeinsame Schwerpunkt der beiden Bücher nicht mehr zwischen den Bleistiften liegt.
Gruss Horst
de.wikipedia.org/wiki/Schwerpunkt
|
|
delfiphan
      
Beiträge: 2684
Erhaltene Danke: 32
|
Verfasst: Fr 03.11.06 20:44
GTA: Ja, genau  Es zählt jedoch nicht die Grundfläche (auf jeder Ebene) selbst, sondern eben die "konvexe Hülle" der Grundfläche die du erwähnt hast. Wenn man nun den Schwerpunkt auf die Grundfläche projiziert und dieser ausserhalb der konvexen Hülle der Grundfläche liegt, fällt der Turm.
Kleine Erläuterung, was die konvexe Hülle ist:
_ _
_| |_ / \
| _| => konvexe Hülle => | |
|___| |___ /
Man spannt also quasi eine Schnur um die Grundfläche und erhält so die konvexe Hülle. (Edit: Bemerkung: Es werden so Einbuchtungen und Löcher gestopft)
//Edit: Wieso funktioniert dies nicht?
Zuletzt bearbeitet von delfiphan am Fr 03.11.06 20:47, insgesamt 2-mal bearbeitet
|
|
Calculon
      
Beiträge: 676
Win XP Professional
Delphi 7 PE, Delphi 3 PRO
|
Verfasst: Fr 03.11.06 20:45
Ich würde das ganze validieren. Kennst du Jenga (das Spiel)? Versuch doch einfach verschiedene Konstellationen aus und schaue, ob es hält. So kannst du (ingenieursmäßig betrachtet) Gesetzmäßigkeiten über das Verhalten in deine Simulation übertragen.
Also beispielsweise, wenn mindestens so eine Hebelsituation vorliegt, hat die Konstruktion keine Chance.
Zugegeben sehr sehr tricky und nichts exaktes, aber ein erster Schritt.
Gruß
|
|
delfiphan
      
Beiträge: 2684
Erhaltene Danke: 32
|
Verfasst: Fr 03.11.06 20:53
Unter Grundfläche versteht sich natürlich die Fläche, die Effektiv zur Stützung beiträgt. Wenn zwei Steine im rechten Winkel zueinander gestapelt sind, dann zählt natürlich nur das gemeinsame kleine Quadrat in der Mitte als Grundfläche - nicht die ganze Länge des Steins.
|
|
Allesquarks
      
Beiträge: 510
Win XP Prof
Delphi 7 E
|
Verfasst: Fr 03.11.06 20:55
Konvexe Hülle ist zwar richtig aber die ist im Fall eines Rechtecks nunmal das Rechteck selber.
Schwerpunkt berechnen: Sum über i (m_i*vec(r_i)) das sollte nicht so schwierig sein zumal Summen ja Assoziativ sind, das heißt, du kannst wenn du 4 Objekte hast, den Schwerpunkt von jeweils zweien berechnen und der Schwerpunkt aller vier ist dann die Summe beider Schwerpunkte.
Also müsstest du maximal über die Anzahl deiner Steine summieren und auch nur ein einziges mal.
|
|
GTA-Place 
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: Fr 03.11.06 21:22
@delfiphan: Hab vorher ne Seite gefunden, bei der das mit nem Java-Applet erklärt war. Trotzdem Danke.
@Calculon: Jenga ist zufällig die Vorlage für mein Projekt - Mist, zuviel verraten xD.
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
Handycommander
      
Beiträge: 1054
Windows XP Pro, Vista
Visual Studio 2008
|
Verfasst: Fr 03.11.06 21:28
ZeitGeist87 hat folgendes geschrieben: | vom rein logischem her würd ich sagen der turm stürtzt und die schuld würde ich dem stein ganz oben links zuschieben, da er sich außerhalb des schwerpunktes (einzelner stein in der mitte) befindet.
Wie du das programmiertechnisch am einfachsten löst -> don´t know
Ich werd das einfach überprüfen indem ich cinema 4d frag =)
LG
Stefan |
und was hat die cinema 4d gesagt
würd mich mal interessieren wie du das gemacht hast 
|
|
hansa
      
Beiträge: 3079
Erhaltene Danke: 9
|
Verfasst: Fr 03.11.06 22:31
Ihr theorethisiert.  Packe eine Tonne Blei in den einen Stein und Luft in die oberen. Unten kommt beton rein und fertig. Dann fällt nichts um ! Ich will damit sagen, dass die Frage Spielraum in alle Richtungen offen lässt. 
_________________ Gruß
Hansa
|
|