【发布时间】:2013-09-13 17:20:31
【问题描述】:
我不确定我的程序是否做错了,但如果可以的话,我可以使用一些快速指导,而且问题很可能是我正在认真考虑它(对我来说总是这样) 并且我想不出解释它的方法(因此这个问题的标题很糟糕)并给我带来了一些麻烦,只是谷歌搜索帮助。
我知道如何通过以下方式缩放对象:
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);
但我在运行我的应用程序时仍然得到不正确的结果。对这个问题有任何帮助吗?就像我说的对不起,如果我解释不正确,我对那些东西很可怕,所以如果有的话我可以澄清让我知道。感谢您的帮助。
【问题讨论】:
-
我不确定您到底想要做什么。假设您从向量 (0, 10) 开始。你希望最终结果是什么? (0, 13.6)? (0, 3.6)? (0, 6.4)?
-
“将大小缩放 3.6”是什么意思?根据定义,缩放意味着乘以一个常数因子,就像第一个例子一样。听起来你想做其他事情,但不清楚是什么。
-
对不起,好吧,让我们举个例子,我有一张图片,我想将图片从每个顶点缩放 3.6 个像素@MikeSeymour 这有意义吗?
-
@TaylorBrandstetter ^^ 这有意义吗?
-
@Chris:好的。在这种情况下,比例为
(old_size + 3.6) / old_size。对于所有向量,它仍然是相同的。
标签: c++ math vector geometry scaling