2010-11-27 3 views
3

현재 매개 변수에 따라 x, y 그래프를 생성하는 클래스에서 작업 중이지만 커서가 올라갈 때 x, y 그래프의 각 점에 대한 설명이 필요합니다. .커서 추적 C++

예를 들어 시장 성장 (연도, 금액, 요율)을 표시하는 그래프를 생성하고 특정 지점에 마우스를 가져 가면 작은 상자가 나타나기를 원하며 연도와 같은 시점에 대한 세부 정보가 표시됩니다 주식, 주식 가격, 그래프 위치 등. 이미 그래프 생성기를 마쳤으나이 부분에 대한 도움이 필요합니다.

C++에서 어떻게 구현합니까?

주 - 저는 우분투를 사용하고 있습니다.

다른 메모 --- 나는 그래픽 라이브러리없이 그래픽 기능을 사용하지 않고 그래픽을 만들었습니다. 처음에 내 질문을 이해하지 못했다면 기본적으로 2 가지를 묻습니다. 1. 외부 그래픽 라이브러리를 사용하여 비 그래픽 그래프에 커서 추적을 구현하려면 어떻게해야합니까? 2. 가능하지 않으면 어떤 라이브러리를 사용해야합니까? 그래프를 만들고 어떻게 커서 추적에 사용할 수 있습니까?

혼란스럽게해서 죄송합니다. 처음으로 그래픽을 사용하고 있습니다. 필자는 "외부 라이브러리 없음"프로그래머에 가깝습니다.

감사합니다.

+0

그래픽을 위해 사용중인 라이브러리를 알고 있으면 도움이 될 것입니다. – thekidder

+0

어떤 툴킷을 사용하고 있습니까? gtkmm? Qt? Plain Xlib (* shudder *)? 완전히 다른 것? –

+0

그래프가 그래픽이 아닙니다. 나는 이것이 두 가지 질문이라는 것을 내 질문에 추가하는 것을 잊었다. 하나는 그래픽 라이브러리로 그래프를 만든 다음 추적을 위해 그래픽 라이브러리를 사용하지 않고 커서 추적을 수행 할 수 있으며 (2) 가능하지 않은 경우 어떤 그래픽 라이브러리가 그래프를 만드는 데 적합하며 어떻게 추적 할 수 있습니까? 커서. 질문을 수정했습니다. 감사. – Lockhead

답변

2

Qwt이라는 제 3 자 라이브러리가 있으므로 Qt를 선택하게됩니다. qt 기반의 기술 위젯을 제공하는 Qt 기반의 제 3 자 라이브러리가 있습니다. Qtcentre의 Qwt dedicated sub-forum에도 관심이있을 수 있습니다.

"txt-box on hover"효과는 실제로 매우 간단합니다. 노드 위젯의 경우 QWidget::setToolTip(const QString&)을 통해 툴팁을 설정하기 만하면됩니다.

+0

감사합니다 .. 작동합니다. – Lockhead

1

그래프의 개체 목록을 유지 한 다음 커서가 놓여있는 각 좌표에 대해 "적중 테스트"를 수행해야합니다. 이 히트 테스트는 기본적으로 현재 좌표가 해당 요소의 그래프에있는 객체에 속하는지 확인하여 목록을 반복합니다.

+0

분명히 이것은 내가 여기서해야 할 일이다. 내 문제는 그것을하는 방법입니다. – Lockhead

+1

글쎄, 당신이 당신의 물체를 그릴 때, 특정의 알려진 위치와 0이 아닌 특정 크기를 갖게 될 것입니다. 당신이해야 할 일은 그것들을 현재 좌표와 상관시키는 것입니다.예를 들어, 물체가 (14, 24)에서 반지름이 5 인 원이라면, 'sqrt ((14 - x) ** 2 + (24 - y) ** 2)'가 또는 5와 같으면 정보를 표시합니다. –

+0

매우 도움이됩니다. 감사합니다. 필자는 외부 라이브러리를 포함하여 이러한 솔루션을 선택하게되었습니다. 그러나 커서 위치를 얻으려면 Windows (GetCursorPos)에서만 작동하는 유일한 방법이며 우분투에서 작업하고 있습니다. Linux에서 커서 위치를 얻는 방법에 대한 의견이 있으십니까? – Lockhead

-1

콘솔을 통해 그래프를 만드는 중이라면 그 콘솔이 마우스의 위치를 ​​알 수 있다고 생각하지 않습니다. Java와 같은 언어에서 찾을 수있는 많은 그래픽 함수는 C++에 존재하지 않습니다. C++ 개발자는이 그래픽 라이브러리를 휴대용이 아닌 강력하게 사용하기를 원했기 때문입니다. 나는 그것을 개인적으로 사용한 적이 없지만 QT에 대한 권고를 두 번째로 추천합니다. 제가 가장 많이 본 도서관은 다른 곳에서 추천 된 도서관입니다.