C# 热点随机抽取
我需要一个程序,以获得一些随机2D向量与更高的概率随机点。斑点也可以是矩形。请帮帮我 函数必须如下所示C# 热点随机抽取,c#,C#,我需要一个程序,以获得一些随机2D向量与更高的概率随机点。斑点也可以是矩形。请帮帮我 函数必须如下所示 public Vector GetRandomHotSpotVectors(Vector minPosition, Vector maxPostion, int spotsCount, float minSpotSize, float maxSpotSize, int VectorCount); var vectors = GetRandomHotSpotVectors(new Vector
public Vector GetRandomHotSpotVectors(Vector minPosition, Vector maxPostion, int spotsCount, float minSpotSize, float maxSpotSize, int VectorCount);
var vectors = GetRandomHotSpotVectors(new Vector(0,0), new Vector(200,200), 2, 20, 30, 44);
公共静态只读随机Rand=new Random();
公共静态浮点NextFloat(最小浮点、最大浮点)
{
返回min+((float)Rand.NextDouble()*(max-min));
}
公共静态向量4[]GetHotSpotVectors(
向量2左上角,
向量2右下角,
int SpotScont,
浮子大小,
float maxSpotSize,
浮动minVectorObjSize,
浮点maxVectorObjSize,
整数矢量计数)
{
var vectors=新Vector4[vectorCount];
var VectorsProceed=0;
for(var i=0;i!=spotsCount;i++)
{
var spotSize=NextFloat(minSpotSize、maxpotsize);
var left=NextFloat(leftTop.X,rightBottom.X-spotSize);
var top=NextFloat(leftTop.Y,rightBottom.Y-spotSize);
var right=left+spotSize;
变量底部=顶部+光斑尺寸;
var currSpotCount=向量计数/spotscont;
对于(var j=vectorsprocessed;j
public static readonly Random Rand = new Random();
public static float NextFloat(float min, float max)
{
return min + ((float)Rand.NextDouble() * (max - min));
}
public static Vector4[] GetHotSpotVectors(
Vector2 leftTop,
Vector2 rightBottom,
int spotsCount,
float minSpotSize,
float maxSpotSize,
float minVectorObjSize,
float maxVectorObjSize,
int vectorCount)
{
var vectors = new Vector4[vectorCount];
var vectorsProceeded = 0;
for (var i = 0; i != spotsCount; i++)
{
var spotSize = NextFloat(minSpotSize, maxSpotSize);
var left = NextFloat(leftTop.X, rightBottom.X - spotSize);
var top = NextFloat(leftTop.Y, rightBottom.Y - spotSize);
var right = left + spotSize;
var bottom = top + spotSize;
var currSpotCount = vectorCount / spotsCount;
for (var j = vectorsProceeded; j < vectorsProceeded + currSpotCount; j++)
{
var vecObjSize = NextFloat(minSpotSize, maxVectorObjSize);
vectors[j] = new Vector4(
NextFloat(left, right),
NextFloat(top, bottom),
vecObjSize,
vecObjSize);
}
vectorsProceeded += currSpotCount;
}
return vectors;
}