public ObjectSet Generate2DObjectSet(ObjectSetProperties2D objectSetProperties) { var objectSet = new ObjectSet(); for (int i = 0; i < objectSetProperties.ObjectAmount; ++i) { objectSet.Add(Generate2DObject(objectSetProperties)); } return(objectSet); }
private Object2D Generate2DObject(ObjectSetProperties2D objectSetProperties) { var objectWidthHeightRatio = rng.NextGaussian( (double)objectSetProperties.AverageObjectWidthHeightRatio, (double)objectSetProperties.ObjectWidthHeightRatioStandardDeviation, (double)objectSetProperties.MinObjectWidthHeightRatio, (double)objectSetProperties.MaxObjectWidthHeightRatio); var objectArea = rng.NextGaussian( (double)objectSetProperties.AverageObjectArea, (double)objectSetProperties.ObjectAreaStandardDeviation, (double)objectSetProperties.MinObjectArea, (double)objectSetProperties.MaxObjectArea); var objectHeight = Math.Sqrt(objectArea / objectWidthHeightRatio); var objectWidth = objectArea / objectHeight; var rectangleObject = new Object2D(Math.Max((int)objectWidth, 1), Math.Max((int)objectHeight, 1)); return(rectangleObject); }