[英]How to increase size of a rectangle
我想将矩形的大小增加10像素。 以下代码似乎无效。 假设sampleRect是我的矩形。 请告诉我。
Rectangle temp = new Rectangle(
sampleRect.X - 10,
sampleRect.Y - 10,
sampleRect.Width + 2*10,
sampleRect.Height + 2*10);
它会起作用,但你可以使用Inflate
方法更优雅地编写相同的东西:
rect.Inflate(10, 10);
您的方法和Inflate
方法之间的一个重要区别是您创建了一个新的矩形实例,而Inflate
修改了一个现有的矩形。
我不确定你为什么会问“这会不会” - 试试吧!
然而,
someRectangle.Inflate(10,20);
//or
someRectangle.Inflate(10);
应该管用
根据您对“以10像素增长”的定义,我会这样做:
int size = 10;
int halfSize = size/2;
Rectangle temp = new Rectangle(
sampleRect.X - halfSize,
sampleRect.Y - halfSize,
sampleRect.Width + size,
sampleRect.Height + size);
您拥有的代码将在x,y -10处与sampleRect相比创建一个新的Rectangle。 为了补偿你,用20增加宽度和高度。
我假设您正在尝试增加围绕中心的矩形,在这种情况下,您需要将矩形移动一半的新增量。
例:
var sizeIncrease = 10;
var newX = sampleRect.X - 0.5 * sizeIncrease;
var newY = sampleRect.Y - 0.5 * sizeIncrease;
var newWidth = sampleRect.Width + sizeIncrease;
var newHeight = sampleRect.Height + sizeIncrease;
这些值应该可以满足您的需求
Rectangle.Inflate也会改变中心周围的大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.