gpt4 book ai didi

c# - 星系生成算法

转载 作者:太空狗 更新时间:2023-10-29 17:47:04 25 4
gpt4 key购买 nike

我正在尝试生成一组大致模拟螺旋星系的点(由 Vector 结构表示)。

我一直在玩的 C# 代码如下;但我似乎只能让它生成银河系的一个“臂”。

    public Vector3[] GenerateArm(int numOfStars, int numOfArms, float rotation)
{
Vector3[] result = new Vector3[numOfStars];
Random r = new Random();

float fArmAngle = (float)((360 / numOfArms) % 360);
float fAngularSpread = 180 / (numOfArms * 2);

for (int i = 0; i < numOfStars; i++)
{

float fR = (float)r.NextDouble() * 64.0f;
float fQ = ((float)r.NextDouble() * fAngularSpread) * 1;
float fK = 1;

float fA = ((float)r.NextDouble() % numOfArms) * fArmAngle;


float fX = fR * (float)Math.Cos((MathHelper.DegreesToRadians(fA + fR * fK + fQ)));
float fY = fR * (float)Math.Sin((MathHelper.DegreesToRadians(fA + fR * fK + fQ)));

float resultX = (float)(fX * Math.Cos(rotation) - fY * Math.Sin(rotation));
float resultY = (float)(fY * Math.Cos(rotation) - fX * Math.Sin(rotation));

result[i] = new Vector3(resultX, resultY, 1.0f);
}

return result;
}

最佳答案

检查这个。它是使用密度波理论模拟星系。代码可用。 http://beltoforion.de/galaxy/galaxy_en.html

关于c# - 星系生成算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7323898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com