플로팅 소프트웨어 일반적으로 그것의 그림에서 progrma을 중지 할 것이라고 생각 함수의 그래프를 그릴 수 있었다한다 상기 도메인을 결정하는 단계; 보이는 위치에서 함수를 평가하고 결과가 "undefined"/ "NaN"/ etc 인 경우 모든 행을 그립니다. 여기에 건너 뛰는 그렇게 수정 코드입니다 (테스트되지 않은, 그리고 내가 참을 수 없기 때문에 나는 당신의 중괄호 스타일과 일치하지 않습니다) :
QPainterPath p();
double previousY = 1/0 /* NaN */;
m_painter->setPen(m_functionPen);
for(double x=-m_w/2, y; x<m_w/2; x++) {
y = f(x/100);
if (y == y /* not-NaN test */) {
if (previousY == previousY) {
p.lineTo(x,y*100);
} else {
p.moveTo(x,y*100);
}
}
previousY = y;
}
m_painter->drawPath(p);
(나는 QPainterPath p()
빈 경로를 구성합니다 있으리라 믿고있어. 나는 당신이 사용하고있는 라이브러리에 익숙하지 않다.) 이제 코딩의 단순화를 위해 다른 점과 같은 첫 번째 점을 다루는 것에 주목하자.
(이 전략은 f(x) = 1/(x + 0.00005)
과 같은 함수를 평가하는 경우 올바른 그래프를 생성하지 않습니다. 정의되지 않은 점은 건너 뛰고 세로선이 생기므로이 전략은 간단하지 않습니다. 문제.) 한편
, 당신이 다음 도메인 을 결정 그래프에 대한 합리적인 경계 (당신의 m_w
변수)을 찾기 위해 노력하는 경우는 문제입니다. 이 경우, 귀하는 어떤 종류의 기능을 보유하고 있으며 어떻게 표현되어 있는지에 따라 다릅니다.
[Mathematics] (http://math.stackexchange.com/)에 대한 질문과 같습니다. –
성취하고자하는 것과 시도한 것에 대해 더 자세하게 설명해 줄 수 있습니까? – Nope