Ich simuliere eine logarithmische Spiralgalaxie mit Python. Unter Verwendung der Parametergleichungen,Eine logarithmische Spiralgalaxie in Python simulieren
x= a*exp(b*theta)*cos(theta)
und y= a*exp(b*theta)*sin(theta)
benutzte ich numpy.random für die zufällige Verteilung der Sterne zu bekommen. Der Beispielcode ist unten angegeben.
import random
from math import *
from pylab import *
import numpy as np
n=100000
a= 1
b=0.6
th =np.random.randn(n)
x= a*exp(b*th)*cos(th)
y=a*exp(b*th)*sin(th)
x1 = a*exp(b*(th))*cos(th+ pi)
y1=a*exp(b*(th))*sin(th + pi)
plot(x,y,"*")
plot(x1, y1,"*")
show()
Das resultierende Bild wird unter spiral galaxy with two arms
gezeigt Was ich brauche: 1) Sterne sollten radial in der Spiralgalaxie verteilt werden. Ich habe die Verteilung nur entlang der Arme bekommen. 2) Beide Arme sollten blau sein. Hier habe ich einen Arm mit blauer Farbe und andere mit Grün.
Nachdem ich das simuliert habe, muss ich die Galaxie drehen. Jede Hilfe in diesem Zusammenhang wäre erwähnenswert.
** edit: Ich habe beide Arme in blauer Farbe mit plot(x1, y1,"b*")
Wie für die Farbe: 'plot (x1, y1," b * ") wird blaue Sterne geplottet. Wenn Sie nur "*" angeben, ändert sich die Farbe für mehrere Plots. Was die anderen Fragen angeht: Was hast du probiert? Zeig uns deine fehlgeschlagenen Versuche und wir können dir von dort aus helfen. – Ian
Vielen Dank für die Antwort. Es klappt. Eigentlich habe ich keine Ahnung. Ich weiß nicht, wie man die Punkte (Sterne), wie wir sie in einer Galaxie sehen, radial verteilt. @mwormser –
Sie verwenden das falsche Modell - mit diesem Modell werden Sie niemals "Radialrauschen" bekommen. Du könntest versuchen, gaußsches Rauschen zu 'x',' y', 'x1' und' y1' hinzuzufügen, und es wird dir _etwas_ geben. Aber ob das für Ihre Zwecke ausreicht, ist nicht klar. Wenn du versuchst, ein schönes Bild zu machen, dann ist es egal. Wenn Sie versuchen, etwas Astrophysik zu simulieren, dann ist es wahrscheinlich nicht das, was Sie wollen. Vielleicht solltest du versuchen, auf physics.stackexchange zu fragen? – Praveen