本文整理汇总了C#中IShape.CalcBoundingRectangle方法的典型用法代码示例。如果您正苦于以下问题:C# IShape.CalcBoundingRectangle方法的具体用法?C# IShape.CalcBoundingRectangle怎么用?C# IShape.CalcBoundingRectangle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IShape
的用法示例。
在下文中一共展示了IShape.CalcBoundingRectangle方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AddPyramid
public static List<Body> AddPyramid(DemoOpenInfo info, IShape shape, Scalar mass, BoundingRectangle rect, Scalar xSpacing, Scalar ySpacing)
{
BoundingRectangle shapeRect;
Matrix2x3 ident = Matrix2x3.Identity;
shape.CalcBoundingRectangle(ref ident, out shapeRect);
Vector2D size = shapeRect.Max - shapeRect.Min;
Vector2D spacing = new Vector2D(xSpacing, ySpacing) + size;
Vector2D end = rect.Max - size * .5f;
Vector2D begin = rect.Min + size * .5f;
Vector2D center = (end + begin) * .5f;
List<Body> result = new List<Body>();
for (int row = 1; begin.Y + row * spacing.Y < end.Y; row++)
{
Scalar start = center.X - ((spacing.X * row - 1) * .5f);
for (int column = 0; column < row; ++column)
{
Vector2D pos = new Vector2D(start + spacing.X * column, row * spacing.Y + begin.Y);
if (pos.X > begin.X && pos.X <= end.X)
{
result.Add(AddShape(info, shape, mass, new ALVector2D(0, pos)));
}
}
}
return result;
}
示例2: AddGrid
public static List<Body> AddGrid(DemoOpenInfo info, IShape shape, Scalar mass, BoundingRectangle rect, Scalar xSpacing, Scalar ySpacing)
{
BoundingRectangle shapeRect;
Matrix2x3 ident = Matrix2x3.Identity;
shape.CalcBoundingRectangle(ref ident, out shapeRect);
Vector2D size = shapeRect.Max - shapeRect.Min;
Vector2D spacing = new Vector2D(xSpacing, ySpacing) + size;
Vector2D end = rect.Max - size * .5f;
Vector2D begin = rect.Min + size * .5f;
Vector2D pos;
List<Body> result = new List<Body>();
for (pos.X = begin.X; pos.X <= end.X; pos.X += spacing.X)
{
for (pos.Y = begin.Y; pos.Y <= end.Y; pos.Y += spacing.Y)
{
result.Add(AddShape(info, shape, mass, new ALVector2D(0, pos)));
}
}
return result;
}