0

我试图根据三角形一半的窗帘点来计算房屋形状的长度。例如,每次我沿着三角形的长边向下移动时,我都会进行一次测量,每次测量都比上次短。我正在尝试正确的代码来为我找到这个。我知道第一次测量将等于从地板底部到三角形顶点的高度。然后每次它沿着三角形向下移动 3 英尺,它就会减去 9 英寸。但是,当它达到零时,我需要它停止。我已经像这样设置了我的数组。

var endwallPanelLength=[]
endwallPanelLength[1]=peakHeight;
endwallPanelLength[2]=peakHeight-peakHeightDecrease;
endwallPanelLength[3]=endwallPanelLength[2]-peakHeightDecrease;
endwallPanelLength[4]=endwallPanelLength[3]-peakHeightDecrease; 

我知道我还有其他事情要解决整个代码,但我至少如何才能更有效地在数组中定义这些测量值。

peakHeightDecrease 只是 3 * 斜率

4

1 回答 1

0

这是你想要的吗?

var endwallPanelLength = [peakHeight];
var i = 0;
while (endwallPanelLength[i] >= peakHeightDecrease) {
    endwallPanelLength.push(endwallPanelLength[i] - peakHeightDecrease);
    i++;
}

顺便说一句,数组索引通常从 0 开始。

另一种方法是将 peakHeight 除以减少:

var repetitions = Math.floor(peakHeight/peakHeightDecrease);
var endwallPanelLength = [];
for (var i = 0; i <= repetitions; i++) {
    endwallPanelLength.push(peakHeight - peakHeightDecrease*i);
}
于 2013-06-03T17:25:12.997 回答