0

我不确定我的程序是否做错了,但如果可以的话,我可以使用一些快速指导,而且很可能问题是我正在认真考虑它(这对我来说总是如此)而且我想不出解释它的方法(因此这个问题的标题很蹩脚)并给我带来了一些麻烦,只是谷歌搜索帮助。

我知道如何通过以下方式缩放对象:

double scale = 2.0;
Array<Real2> newPoints;
Foreach(Real2 point, points)
{
Vector2 vector = point - centerPoint;
vector *= scale;
newPoints.Add(center + vector);
}

但是,假设我想将对象的大小缩放 3.6(单位)而不是百分比。我该怎么做?

至少对我来说,我会做一些类似的事情是有道理的

vector *= 1 - (3.6/vector.length);

但我在运行我的应用程序时仍然得到不正确的结果。对这个问题有任何帮助吗?就像我说的对不起,如果我解释不正确,我对那些东西很可怕,所以如果有的话我可以澄清让我知道。谢谢您的帮助。

4

1 回答 1

0

似乎您想缩放对象,使其新尺寸(例如)比旧尺寸大 3.6 个单位。在这种情况下,代码将是相同的,除了

scale = (old_size + 3.6) / old_size;

您仍然需要将每个矢量缩放相同的数量,以保持对象的整体形状。

于 2013-09-13T17:31:04.033 回答