[B3D und B2D] Saturnringe und Sonnensystem
Übersicht

KrischanBetreff: [B3D und B2D] Saturnringe und Sonnensystem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich habe mal ein wenig mit Saturnringen herumgespielt, wen es interessiert: ![]() Download Source+GFX Die Ringe selbst sind ein Sprite mit einer Textur überzogen, die ich mittels Polarkoordinaten aus einem Streifen gebastelt habe. Sicher könnte man das auch anders machen, aber so ist es sauschnell. Den Schatten musste ich allerdings auf die Textur einzeichnen. Man kann übrigens auch durch dieses Miniversum fliegen, Steuerung mit Maus und Pfeiltasten, Speed über Maustasten (links 10x, rechts 20x, beide 200x). Die Tasten 1-5 sind vordefinierte Punkte, die ganz nett aussehen. Vielleicht bastel ich irgendwann mal das Sonnensystem nach, die benachbarten Sterne, die Milchstrasse, den Kosmos und darüber hinaus ![]() Hat irgendjemand eine Idee, wie man sowas programmieren könnte? Ich habe es bislang nur geschafft, in 2D mittels archimedischen Spiralen was zu erstellen, was so ähnlich wie eine Spiralgalaxie aussieht. Screenshot: ![]() Code: BlitzBasic: [AUSKLAPPEN] Graphics 800,600,32,2 |
||
- Zuletzt bearbeitet von Krischan am Sa, Okt 15, 2005 11:20, insgesamt einmal bearbeitet
Knartz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
super !
schade nur, dass der schatten nicht echt ist - aber was solls. megaman hatte auch nie schatten - nicht mal die playstation konvertierung *g* |
||
BlackTermi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sehr schön
erlaube mir mal eine frage, seit wann programmierst du mit bb? grade neu? also für das erste was du hier zeigst, ist das ein sehr schöner einstand |
||
Krischan |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Umm ehm öhhh - also ehrlich gesagt habe ich bis vor dem 1. Oktober noch nie was von Blitzbasic gehört, bin dann zufällig auf BB gestossen, Demo gezogen, bissi rumprobiert, unzählige Tutorials studiert und Demos angesehen, habs mir dann am 4.10. gekauft weil man dann doch grössere Sachen schreiben will und auch compilieren, tja und dann seitdem jede freie Minute da reingesteckt.
Programmieren tu ich schon länger, so seit ca. 1987 mit Basic auf dem VC20 angefangen, dann auf dem C64 weitergemacht. Hab dann später auf dem PC ein bissi mit QB45 herumgemacht, bin dann aber an der 64K Grenze und der AI gescheitert und habs aufgegeben. Hab damals (1995?) auch mal zwei Spiele und ein paar Tools gebastelt, wen es interessiert (alles mit Sources): Apfelsee 1.3 - Ein See aus einem Apfelmännchen Artillerie Duell PC - Remake der C64-Version für den PC Demos - Kleine Grafikdemos DSA2 Savegame Editor - Damit konnte man beim Schwarzen Auge II mogeln ![]() Risiko 0.44 - Remake des Amiga Risk VGA Apfelsee 2.0 - stark erweiterte VGA-Version des Apfelsees Tja und dann vor 3-4 Jahren mit PHP angefangen, halt nur Webseiten. Und nun... Blitzbasic ![]() ![]() Und danke für die Blumen, ich finde es noch lange nicht perfekt, mir schwebt da wie gesagt so ein Solar System Simulator vor, vielleicht noch mehr. Als Spiel könnte man sowas dann vielleicht als Starflight/Elitemix verwursten, irgendwie. Im Moment bastel ich an der Grundlage von einem Sonnensystem auf reellen Bahndaten, soweit man das als Laie/Nichtastronom hinbekommen kann. Hier ein Democode, allerdings im Moment nur 2D, ist bestimmt noch voller Bugs: BlitzBasic: [AUSKLAPPEN] Graphics 800,600,16,2 Die farbigen Bahnen sind die elliptischen Umlaufbahnen unter Berücksichtigung der Aphel/Perihel, die graue Bahn ist der jeweilige durchschnittliche Kreisradius. Mit Pfeiltaste links/rechts bestimmt man die Geschwindigkeit und mit Pfeiltaste rauf/runter den Zoomfaktor. Viel Spass... |
||
BlackTermi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmm, sehr schön, aber ich würde mir überlegen die planeten mit types zu verwalten... | ||
![]() |
Sebastian |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hiers was ,von mir :
BlitzBasic: [AUSKLAPPEN]
Ich weiß die Umsetzung is nicht ganz elegant ..... ... dafür war das son 2-Stunden Blitz-Projekt. ![]() Ich hab das geprogg als ich auf der letzten Lan-party , mein SuM neuinstallieren musste und deshalb die erste Partie nicht mitzocken konnte. Als mit F1 ziehen die Sterne spuren und mit F2 kann man die Parent-child-beziehungen sichtbar machen .......... |
||
Seit 2 Jahren kein BlitzBasic und kein Windows mehr, und stolz darauf ! |
KrischanBetreff: Realistisches 2D-Sonnensystem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So, ich habe mich auch noch mal hingesetzt und präsentiere Euch hier ein realistisches Sonnensystem in 2D-Draufsicht. Es werden alle 9 Planeten unter Berücksichtigung des N-Körper Problems ausgehend von ihren realen Positionen/Geschwindigkeiten vom 01.01.2000 dargestellt. Den Core habe ich von folgender Webseite:
http://www.physics.odu.edu/~gc...ations.htm (dort: planets1.bas, eine Simulation was mit dem Sonnensystem passiert, wenn plötzlich ein Stern mit gleicher Sonnenmasse da durchmaschiert) Allerdings bedurfte der Code einiger Veränderungen meinerseits, damit es in Blitzbasic gut aussieht ![]() Pfeil rauf/runter = Zoom in/out Pfeil links/rechts = langsamer/schneller Space = Tracers ein/aus F1 = inneres Sonnensystem F2 = komplettes Sonnensystem F3 = Sonnenmasse verdoppelt F4 = Sonnenmasse halbiert F5 = Erdmasse = 0.05 Sonnenmassen ![]() Bei F3-F5 passieren i.d.R. sehr witzige Sachen (aber nicht witzig, wenn man auf dem dritten Planeten dort wohnt) - wir spielen Q und verändern einfach mal die Gravitationsverhältnisse in unserem Sonnensystem 8) Screenshot: ![]() Der Code ist so wie er jetzt ist ganz nett aber vielleicht findet sich jemand, der ihn noch dahingehend optimiert, dass die Tracers bei Zoomveränderung keine Linien ziehen, also der Screen gelöscht wird. Ich habs mit CLS versucht, aber das ist zu lahm und flackert. Keine Ahnung, wie man das besser machen könnte. So ganz habe ich den Originalsource nicht verstanden, aber er funzt ![]() So und hier isser: Download Was ein Akt, im Internet einen brauchbaren Code für so eine Darstellung zu finden, ich habe geschlagene 5 Tage alle möglichen Seiten mit verschiedenen Google-Begriffen abgesucht, nix. Entweder C++ mit meilenlangen Sources oder merkwürdige QBasic-Scripte die schwer auf BB zu portieren waren. Letztlich kann man meinen Code sogar für B3D verwenden, da die Z-Koordinaten vorhanden sind und auch im Betrieb berücksichtigt werden. Eine letzte Frage, die sich mir noch stellt ist, wie man es anstellt, zufällige Planetensysteme mittels dieses Codes zu erstellen. Ich habe da ein paar Versuche gestartet, aber nach ein paar Jahren wurden die Systeme extrem instabil. Leider ist die Datenbasis unseres Sonnensystems eine Momentaufnahme, und diesen dann zufällig und gleichzeitig realitätsnah mittels einer Formel so zu berechnen, dass realistische und stabile Verhältnisse dabei herauskommen habe ich noch nicht geschafft. Naja Gott wird schon gewusst haben, warum sich der Planet genau dort mit der Geschwindigkeit befunden muss ![]() Meinen besten Versuch könnt Ihr hier downloaden Die Formel ist im Moment so aufgebaut (vor der Massenormalisierung eingeschoben) BlitzBasic: [AUSKLAPPEN] ;zufällige Planeten (experimentell) Ich habe dazu Excel verwendet und das ganze grafisch dargestellt: ![]() Die Werte in Spalte B habe ich experimentell mit einem eingezeichneten Kreis über der Flugbahn herausgefunden, sind also annähernd kreisförmig. Huch, jetzt ist der Post doch etwas länger geworden, als zunächst beabsichtigt ![]() |
||
![]() |
Sebastian |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() ![]() |
||
Seit 2 Jahren kein BlitzBasic und kein Windows mehr, und stolz darauf ! |
![]() |
BlitzChecker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich bin beeindruckt! Von einem (Fast)Anfänger hätte ich das nicht erwartet! | ||
www.xairro.com |
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also bei mir läuft das hier sehr flüssig:
BlitzBasic: [AUSKLAPPEN] ;Realistisches 2D-Modell des Sonnensystems V1.0 |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
Shodan |
![]() Antworten mit Zitat ![]() |
---|---|---|
Interessant. Bei hochziehen des Zeitraffers hat sich Mars verabschiedet und ist aus seiner Bahn ausgebrochen. Ich hoffe dein Modell ist nicht zu exakt, sonst passiert das eines Tages wirklich ![]() |
||
www.selfmadegames.de |
Krischan |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das liegt einfach daran, dass die Berechnung ungenauer wird, wenn man den Step höhersetzt. Ich kann Dich beruhigen, bei Step 1 vergeht in ca. 1 Sekunde genau ein Tag (je nach Geschwindigkeit des PCs, hab da keine Millisekundenberechnung eingebaut), also ein Step von 0.0002777 (1/3600) wäre im Idealfall zeitnah, da fliegt dann nix mehr weg ![]() Allerdings: Zitat: Rechnungen von Jacques Laskar für die Erde deuten darauf hin, daß schon eine Meßungenauigkeit der Erdbahn von 15 Metern nach 100 Millionen Jahren zu einer Ungenauigkeit von 100 Prozent für die Bahnparameter unseres Heimatplaneten führt [4]. Es läßt sich also sagen, daß sich unser Sonnensystem durchaus chaotisch verhalten kann, sich dies aber erst in für uns ungeheuer großen Zeiträumen äußert.
http://www.eberl.net/chaos/Sem/Krause/D_index.html Und wie das bei chaotischen Systemen so üblich ist kann eine kleine Ungenauigkeit in den Anfangsparametern später fatale Folgen haben, siehe Simulator. Ich hatte da auch mal eine Situation (Erde=0,05 Sonnenmassen im richtigen Zeitpunkt), in der der Mars plötzlich eine zeitlang zum Mond der Erde wurde, bevor er dann mit wahnsinniger Geschwindigkeit links aus dem Bildschirm geflogen ist. ![]() |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja die Ungenauigkeit liegt daran, daß der Rechner schritweise berechnet. In der Natur wird aber 'fliessend' Einfluss genommen. Je mehr man die Simulationsgeschwindigkeit hochdreht, umso größere Schritte werden beim berechnen gemacht. Das ein Planet dann wie ein Geschoss weg fliegt liegt daran das bei großen Schritten 'plötzlich' Planeten so nah beieinander liegen können, das die Gravitationskraft enorm groß wird. Diese Beschleunigt dann die Planeten wie Geschosse voneinander weg. Bei dieser Geschwindigkeit und der Schrittgröße wird dann anschliessend kaum noch Gravitationskraft zueinander wirksam.
Was ich aber eigendlich fragen wollte. Wenn hier mal ein paar Spezialisten mir verraten könnten wie sich Spiralen im Universum bilden. Dem währe ich sehr dankbar. Habe solche Simulationen mit biszu 8000 Partikeln gemacht, wo jeder einzelne Einfluss zum anderem hat. Problem: Irgendwann hat man ein Zentrum mit 'wirr' fliegenden Partikeln. Dann habe ich eine Art 'Gravitationsdoppler-Effekt' eingebaut. Dieser sollte eine Gravitationsausbreitung mit Lichtgeschwindigkeit simulieren. Also wenn sich Partikel zueinander nähern, dann wird bedingt durch den Doppler-Effekt die Gravitation 'abgeschwächt', und verstärkt wenn sie sich voneinander weg bewegen (Berechnet durch Entfernung und relative Geschwindigkeit (Also 'vergangene Zeit' bis Gravitationskraft einfluss nimmt)). Zudem wurde auch die Entfernung mit berücksichtigt. Dadurch habe ich in der tat Spiralbildende Galaxien geschaffen. Leider wurde aber auch durch den Effekt eine ewige Zunahme der gesammten Durchschnittsgeschwindigkeit eingeführt. Somit hatte die Galaxie eine ewige Ausdehnung bevor sie sich richtig stabilisieren konnte. Dann habe ich (was im Weltraum nicht vorhanden ist) ein Bewegungswiederstand eingebaut, der verhindern sollte das die ewige Geschwindigkeitszunahme eine Ausdehnung und letztendlich zum verfliegen der Galaxie führt. Je nachdem wie die Ausgangssituation war, hatte ich nach etwa 10000 Zyklen ein Ring oder eine ständig aufbauende Spirale die wieder verfällt und sich wieder aufbaut. Das Problem ist auch, daß solche Simulationen nicht einfach mal so durchgeführt werden können. Ich habe mein Rechner schonmal 36 Stunden dafür rechnen lassen, die Werte in eine Datei gespeichert um dann eine 15min lange Animationssequenz anschauen zu können. Kann ja mal den Code für BB hier rein posten, falls Interesse besteht. |
||
![]() |
nX^ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hatte mal Langeweile und habe an dem Code rumgebastelt.
![]() ![]() ![]() ![]() |
||
- Zuletzt bearbeitet von nX^ am Fr, Jun 16, 2006 21:06, insgesamt einmal bearbeitet
![]() |
Mr.HydeNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab ebenfalls mal nen bisschen rumgespielt. Man hat ja sonst nix zu tun ![]() |
||
BBP News RSS | Chaos Interactive | Watanien 2 Screens, Infos und Download | Watanien 2 Worklog | PuzzleMasters
http://abgeordnetenwatch.de - http://www.regierungs-beratung.de - Der Regierung auf die Finger schauen |
$tankY |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ihr kramt diesen alten Thread hoch, schick ganz geile Pics, aber - was hier wohl angebracht wäre - ihr habt keinen source gesendet ![]() |
||
![]() |
Mr.HydeNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
hm. könnte ihn jetzt posten, sind aber nicht so weltbewegende Veränderungen. Eher die Vielzahl an kleinen Änderungen macht den Unterschied | ||
BBP News RSS | Chaos Interactive | Watanien 2 Screens, Infos und Download | Watanien 2 Worklog | PuzzleMasters
http://abgeordnetenwatch.de - http://www.regierungs-beratung.de - Der Regierung auf die Finger schauen |
chmee |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Da es "ähnlich" ist , wollte ich es hier reinposten.
1. Uralter lausiger Programmierstil, nix von wegen Funktionen oder Objektorientiert. 2. Mir fehlt das Blurring für nen Schweif. Ich wollte die kleine Gravitiation-Sim auf die 10-100 fache Menge pushen. Aber ich denke auch, unter BB/B3D wird das nix. Code: [AUSKLAPPEN] ; ---------------------------------------
; -- Gravitation Sim v 0.7 -- ; -- geschrieben:chmee@phreekz.de 2006 -- ; --------------------------------------- Const anz=140 Const blur=1 ; momentan nicht benutzt Const xmax=1440 Const ymax=900 Const Gravkonst#=2.9 Const reib#=0.95 Const Mitte=0 ; Statische Kraft ? 0/1 is=10 ; Initial Geschwindigkeit imn=3 ; Masse Mimimum imx=30 ; masse Maximum Dim x#(anz),y#(anz),dx#(anz),dy#(anz),mass#(anz),col(anz) Dim blurpix(1,blur,anz) SeedRnd MilliSecs() Const xmid=xmax/2 Const ymid=ymax/2 Graphics xmax,ymax,32,1 ima=Int(0.35*imx) imb=Int(0.65*imx) imc=Int(0.80*imx) .Start xini=Rnd(25,xmid-10) ; Initial X yini=Rnd(25,ymid-10) ; Initial Y ; ---------- Statische Gravitationskraft x#(0)=0 y#(0)=0 mass#(0)=imx*40 ;---------------------------------------------- tast="" buf=0 Mit=1-Mitte ; Initialisieren der Punkte For an=1 To anz x#(an)=Rnd(-xini,xini) y#(an)=Rnd(-yini,yini) dx#(an)=Rnd(-is,is)/10 dy#(an)=Rnd(-is,is)/10 mad=Rnd(imn,imx) mass#(an)=mad/5 Select True Case mad<ima c=$6666FF Case mad=>ima And mad<imb c=$FF0000 Case mad=>imb And mad<imc c=$00CC00 Case mad=>imc c=$FFFFFF End Select col(an)= c Next SetBuffer BackBuffer() Cls SetBuffer FrontBuffer() Cls SetBuffer BackBuffer() While Not (tast Or mou) tast=GetKey() mou=GetMouse() LockBuffer BackBuffer() For an=1 To anz dxx#=0 dyy#=0 xaa#=x#(an) yaa#=y#(an) maa#=mass#(an) For in=Mit To anz ; Kraft pro Punkt berechnen If an<>in Then ; Nicht mit sich selbst, da div0-Error xu#=xaa#-x#(in) yu#=yaa#-y#(in) entf#=(xu#*xu#)+(yu#*yu#) komp#=gravkonst#*mass#(in)*maa#/entf# ; Entf N quadsch > Wurzel entfernt bei Entf# dxx#=(dxx#-xu#*komp#)*reib# ; -- X * Konst * Masse1 * Masse2 / Entfernung^2 dyy#=(dyy#-yu#*komp#)*reib# EndIf Next dx#(an)=dx#(an)+dxx#/anz ; Richtungsvektor dx und dy dy#(an)=dy#(an)+dyy#/anz x#(an)=xaa#+dx#(an) y#(an)=yaa#+dy#(an) xxx=xmid+Int(x#(an)) yyy=ymid+Int(y#(an)) ;If xxx>xmax Or xxx<0 Then dx#(an)=-dx#(an) ; Wenn an Wände gestoßen, Kräfte dx/dy umkehren ;If yyy>ymax Or yyy<0 Then dy#(an)=-dy#(an) If xxx<xmax And xxx>0 And yyy<ymax And yyy>0 Then WritePixelFast xxx,yyy,col(an),BackBuffer() EndIf Next UnlockBuffer BackBuffer() Flip Cls Wend If tast=32 Then Goto start mfg chmee |
||
Das Leben könnte so schön bunt sein, aber nee.... |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group