本文整理匯總了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;
}