2012-07-14 5 views
0

이 자바 예제에서 수학 함수를 그래프로 나타낼 수 있지만 작동하지 않지만 마지막 두 줄을 이해할 수 없습니다. 나를? data이 double 형 배열이고 특정 'range'에 대한 함수 값을 보유한다고 가정합니다.이 경우 range는 -pi에서 pi입니다.애플릿을 사용하여 Java에서 수학 함수를 그래프로 표시

이 책은이 작은 조각의 코드에 대한 의견이 있으며 그 코드가 무엇을하는지 알고 있지만이 루프의 마지막 두 줄을 왜 정확히하는지 알고 싶습니다.

// Scale and translate data values 
for (int i = 0; i < d.width; i++) { 
     double value = data[i]; 
     double k = (value - min)/(max - min); 
     data[i] = d.height * (1 - k); 
    } 

누군가 나를 도울 수 있습니까?

+0

유용하다고 판단되면 답을 upvote하고 질문에 답변했습니다. – Gigili

답변

2

확실히. 그래프를 그리려면 함수의 y 값을 크기 조절하여 그리는 영역의 높이 내에 맞춰야합니다. 따라서 k은 0- 1 범위의 y의 축척 된 버전입니다. 즉, 최소값은 0으로 매핑되고 최대 값은 1로 매핑됩니다. 마지막으로 k을 사이의 값으로 변환하여 그릴 데이터 요소를 찾습니다. 0 및 d.height.

+0

고맙습니다. 설명을 완전히 이해하지는 못했지만, 조금만 더 살펴 보겠습니다. 이것은 일을하는 표준 방법입니까? – rage

+0

꽤 표준입니다. max, min 및 value의 다른 값을 사용해 k 및 d.height에서 어떤 일이 발생하는지 확인하십시오. 그렇다면 당신은 이해할 것입니다. –

+0

좋습니다. 나는 숫자 {1,2,3,4,5}를 가진 간단한 예제를 만들었고이 숫자들을 0-1로 매핑하기 위해서 당신은 실제로해야 할 일이있다 : value - min/max와 min 사이의 차이. 어떤 이유로 Math.random()을 다룰 때 전에 이것을 본 것처럼 느껴집니다. – rage

관련 문제