基本上,如果选中单选按钮,我喜欢将网格x轴的大小增加“1”。如果取消选中单选按钮我想要反转它。
通常我只需设置x轴的大小即可:
类似:
如果选中单选按钮
mesh.scale.x = 2;
如果未选中单选按钮
mesh.scale.x = 1;
我的情况很困难,我的网格的当前比例级别因其他一些因素而异。因此,可能发生x轴的比例级别不是“1”,而是例如“3.7”。
由于上述功能不起作用,我正在寻找数学上的东西,简单地在网格上加上和减去“1”。
$('input').change(function () {
if ($('#radio1').is(":checked")) {
mesh.scale.x = +1;
}
if ($('#radio2').is(":checked")) {
mesh.scale.x = +2;
}
});
我的功能问题是它在之前添加的值之上添加了值。我正在寻找在添加新内容之前减去之前值的内容。
答案 0 :(得分:3)
如果你仔细想想,规模是你倍增的东西。我想让我的物体大10%或大两倍或小30%。它通常不是添加剂操作。所以我会这样做:
mesh.scale.x *= 1.1; // to make my mesh 10% bigger
或
mesh.scale.x *= 0.9; // to make my mesh 10% smaller
答案 1 :(得分:1)
您可以将比例因子附加到单选按钮元素,如下所示:
<input type="radio" value="2" name="scalers" />
<input type="radio" value="1.4" name="scalers" />
<input type="radio" value="3.7" name="scalers" />
然后,JS:
var current_scale = 0;
$("input[name=scalers]").change(function() {
var new_scale = parseFloat($("input[name=scalers]:checked").val());
mesh.scale.x -= current_scale;
mesh.scale.x += new_scale;
current_scale = new_scale;
});
正如另一个答案中所提到的,您可能会错误地认为您需要添加和减去比例。所以正确的JS可能是:
var current_scale = 1;
$("input[name=scalers]").change(function() {
var new_scale = parseFloat($("input[name=scalers]:checked").val());
mesh.scale.x /= current_scale;
mesh.scale.x *= new_scale;
current_scale = new_scale;
});