2013-06-17 2 views
0

Qwt 라이브러리 덕분에 Qt에 곡선을 그릴 때 문제가 있습니다. 나는 QwtPlotCurve을 검토 한 결과QwtPlotCurve를 사용하여 첫 번째 점과 마지막 점 연결을 끊습니다

곡선 그리기, 마지막 점과 첫 번째 포인트가 연결되어 있다는 사실을 제외의 QwtPlot 실제로 I가 제공하는 데이터 다각형을 잘립니다 ... 설정 및 매개 변수를 수정했지만 해결할 수있는 관련 항목을 찾을 수 없습니다.

다른 힌트는 this thread (슬프게도 대답하지 않습니다) 덕분에 내가 제공 한 데이터와 관련이 있다는 것입니다.

현재 순환 고정 크기 버퍼 (std::array)를 사용하여 지속적으로 폴링하는 값을 저장하고 있습니다. 다음, 나는 (내가 std::array::data()으로 얻을 포인터) 내 곡선의 데이터를 설정하는 멤버 함수를

setRawSamples(const double* xData, const double* yData, int size); 

를 사용합니다. 즉, 그릴 점 목록이 정렬되지 않았 음을 의미합니다 (즉, 가장 작은 가로 좌표를 가진 점이 double*의 첫 번째 점이 아님).

문제의 원인이 될 수 있습니까? 문제를 해결하고 다각형이 아닌 커브를 그리는 방법은 무엇입니까?

답변

1

커브는 기본적으로 닫히지 않은 다각형으로 그립니다. 각 샘플 지점은 제공된 배열의 이전 샘플 지점에 연결됩니다 (단, 첫 번째 샘플은 마지막 샘플에 연결되어 있지 않습니다). Qwt는 가로 좌표 값으로 포인트를 정렬하는 데 신경 쓰지 않습니다. 예를 들어 샘플 (0, 0), (0, 1), (1, 1), (1, 0), (0, 0)을 제공하면 직사각형이 그려집니다. 커브 내 교차점을 피하려면 가로 좌표로 정렬 된 샘플을 제공해야합니다.

+0

나는 그 때 그것을 시도 할 것이다. – JBL

+0

효과가 있습니다. 감사 ! – JBL