我试图根据三角形一半的帷幕点找出房屋形状的长度。例如,每当我沿着三角形的长边向下移动时,我每次测量的时间都会比上一次更短。我正在努力找到适合我的代码。我知道第一次测量将等于从地板底部到三角形峰值的高度。然后,每当它向三角形移动三英尺时,它将减去9英寸。但是当它达到零时我需要它停止。我已经设置了这样的数组。
var endwallPanelLength=[]
endwallPanelLength[1]=peakHeight;
endwallPanelLength[2]=peakHeight-peakHeightDecrease;
endwallPanelLength[3]=endwallPanelLength[2]-peakHeightDecrease;
endwallPanelLength[4]=endwallPanelLength[3]-peakHeightDecrease;
我知道我还有其他事情需要解决整个代码,但我怎样才能更有效地在数组中定义这些测量。
peakHeightDecrease只是斜率的3 *
答案 0 :(得分:0)
这是你想要的吗?
var endwallPanelLength = [peakHeight];
var i = 0;
while (endwallPanelLength[i] >= peakHeightDecrease) {
endwallPanelLength.push(endwallPanelLength[i] - peakHeightDecrease);
i++;
}
BTW,数组索引通常从0开始。
另一种方法是将peakHeight除以减少:
var repetitions = Math.floor(peakHeight/peakHeightDecrease);
var endwallPanelLength = [];
for (var i = 0; i <= repetitions; i++) {
endwallPanelLength.push(peakHeight - peakHeightDecrease*i);
}