【发布时间】:2016-07-25 07:40:45
【问题描述】:
我正在使用 python 模拟一个对数螺旋星系。使用参数方程,
x= a*exp(b*theta)*cos(theta)
和
y= a*exp(b*theta)*sin(theta)
我使用 numpy.random 来获取星星的随机分布。示例代码如下。
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()
生成的图像如下所示 spiral galaxy with two arms
我需要什么: 1) 恒星在螺旋星系中应呈放射状分布。我只在手臂上得到分布。 2)双臂应该是蓝色的。在这里,我的一只手臂是蓝色的,另一只是绿色的。
模拟完之后,我需要旋转星系。任何有关这方面的帮助都将不胜感激。
**edit:我使用plot(x1, y1,"b*") 得到了蓝色的双臂
【问题讨论】:
-
至于颜色:
plot(x1, y1, "b*")将绘制蓝色星星。如果您只指定"*",它将改变几个图的颜色。至于其他问题:您尝试过什么?向我们展示您失败的尝试,我们可以从那里帮助您。 -
感谢您的回复。有用。其实我没想法。我不知道如何像我们在星系中看到的那样径向分布点(恒星)。 @mwormser
-
你使用了错误的模型 - 使用这个模型你永远不会得到“径向噪音”。您可以尝试向
x、y、x1和y1添加高斯噪声,它会给您一些东西。但是这是否足以满足您的目的尚不清楚。如果你想拍一张漂亮的照片,那没关系。如果你试图模拟一些天体物理学,那么它可能不是你想要的。也许您应该尝试在physics.stackexchange上询问? -
谢谢。我正在为一个天体物理学项目模拟这个。
标签: python numpy random galaxy spiral