C# 热点随机抽取

C# 热点随机抽取,c#,C#,我需要一个程序,以获得一些随机2D向量与更高的概率随机点。斑点也可以是矩形。请帮帮我 函数必须如下所示 public Vector GetRandomHotSpotVectors(Vector minPosition, Vector maxPostion, int spotsCount, float minSpotSize, float maxSpotSize, int VectorCount); var vectors = GetRandomHotSpotVectors(new Vector

我需要一个程序,以获得一些随机2D向量与更高的概率随机点。斑点也可以是矩形。请帮帮我

函数必须如下所示

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;
    }