2013-06-03 3 views
0

저는 삼각형 절반의 커튼 포인트를 기반으로 한 집 모양의 길이를 알아 내려고하고 있습니다. 예를 들어 내가 삼각형의 긴면을 아래로 움직일 때마다 나는 매회 측정보다 짧은 측정을 할 것입니다. 나는 그것을 위해 나를 찾을 수있는 올바른 코드를 만들려고 노력하고있다. 첫 번째 측정은 마루 바닥에서 삼각형의 꼭대기까지의 높이와 같습니다. 그런 다음 삼각형을 3 피트 아래로 움직일 때마다 9 인치를 뺍니다. 그러나 그것이 0에 도달하면 멈출 필요가 있습니다. 나는 이처럼 배열을 설정했다.어떻게이 배열을 만들 수 있습니까?

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

는 나는 전체 코드를 해결하기 위해 다른 일을 알고 있지만 어떻게 적어도보다 효율적으로 배열에 이러한 측정을 정의 할 수 있습니다.

peakHeightDecrease는 3 * 경사입니다.

+0

벽. 요약하다. 그 질문은 정확히 무엇입니까? 우리가 당신을 위해 코드화하기를 원하십니까? –

+0

변수를보다 효율적으로 정의하려면 어떻게해야합니까? –

+0

나는 이것이 최적화 된 이후로 http://programmers.stackexchange.com에 더 많이 속할 것이라고 확신한다. –

답변

0

원하는 것이 있습니까?

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

BTW, 배열 인덱스는 일반적으로 다른 방법은 감소에 의해 peakHeight을 나누는 단지 0

에있다 시작 : 텍스트의

var repetitions = Math.floor(peakHeight/peakHeightDecrease); 
var endwallPanelLength = []; 
for (var i = 0; i <= repetitions; i++) { 
    endwallPanelLength.push(peakHeight - peakHeightDecrease*i); 
} 
+0

이 답변은 효과가 있지만 결국에는 결국 나에게 하나의 부정적인 가치를 부여합니까? –

+0

최종 조건이 변경되었습니다. 이를 수행하는 또 다른 방법은 peakHeight를 peakHeighDecrease로 나눠서 반복 횟수를 얻는 것입니다. 이것은 정말 간단한 수학이 아닌가? – Barmar

관련 문제