将对象从中心点缩放特定数字

Scaling objects from a center point by a specific number

本文关键字:数字 缩放 中心点 对象      更新时间:2023-10-16

我不确定是否在我的程序中做错了什么,但如果可以的话,我可以使用一些快速指导,而且很可能问题是我正在考虑努力解决这个问题(对我来说总是如此),我想不出解释它的方法(因此这个问题的标题很糟糕),并且只是在谷歌上搜索寻求帮助,这给了我一点麻烦。

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

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);

但是运行我的应用程序时我仍然得到不正确的结果。关于这个问题有什么帮助吗?就像我说对不起,如果我解释不正确,当涉及到这些东西时,我很糟糕,所以如果有的话,我可以澄清让我知道。谢谢你的帮助。

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

scale = (old_size + 3.6) / old_size;

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