我正在尝试缩放UV。我有当前UV shell占用的0-1 UV空间的百分比以及我需要shell占用的百分比。最好的方法是什么?
我已尝试使用pm.polyEditUVs()
,但我无法提出将百分比转换为适当比例值的公式。
如果我含糊不清,请告诉我,我会尝试更具体。
编辑:
我道歉,我的问题不完整。
pm.polyEditUVs()
中的比例值不按区域缩放,它们使用U和V值独立缩放。
如果是按区域缩放,那么将旧值除以新值会产生适当的比例值,但这里没有。例如:
A = 1.0 #Normalized percentage of the total UV area our UVs currently occupy.
B = 0.25 #Normalized percentage of the total UV area we want our UVs to occupy.
#If we could scale the area directly using a single number then the following would work.
ScaleValue = B\A
0.25 = 0.25\1.0
但是,如果我们将该值插入pm.polyEditUVs()
中的scaleU和scaleV关键字args,那么您将以指数级别而非线性缩小区域。
#continuing with the previous example
#for the sake of ease of predictability regarding the math I am assuming our UVs are a square for this example, however U and V will rarely be the same value.
U = 1.0 #linear distance actual value (percentage value would be 100% (1.0))
V = 1.0 #linear distance. actual value (percentage value would be 100% (1.0))
Area = 1*1 #actual area value. (percentage value would be 100% (1.0))
newU = U * scaleValue
0.25 = 1.0 * 0.25
newV = V * scaleValue
0.25 = 1.0 * 0.25
newArea = newU * newV
0.0625 = 0.25 * 0.25
最终结果,而不是使原始尺寸的25%的区域实际上使其成为原始尺寸的6.25%。我们如何考虑额外的数量级?
我为这个例子的迂腐性质道歉,但我想确保我的例子很清楚,如果它不是我会添加更多。
答案 0 :(得分:1)
如果目标是从某个%的UV空间变为不同的%,则只需按当前%与所需%的比例进行缩放。如果你当前的面积是紫外线空间的45%并且你希望它是90%,你可以按比例缩小90/45 = 2.如果你现在的比例为75%并希望达到25%,比例为25/75,或.33333。
答案 1 :(得分:0)
来自维基百科:
Precentage是一个数字或比率,表示为100的分数。例如,45%(读作“百分之四十五”)等于45/100,或 0.45 强>
因此,根据定义,10%是0.10单位,因此10%的比例为0.10。