Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Координаты курсора на TChart


Автор: Saviour 14.5.2010, 17:22
Есть чарт; заданы границы изменения координат точек: a<x<b, c<y<d. Надо по клику на чарте определить соответствующие координаты. Определить координату в пикселях относительно чарта легко:
Код
void __fastcall TForm1::Chart1Click(TObject *Sender)
{
TPoint cPt;
GetCursorPos(&cPt);
cPt=Chart1->ScreenToClient(cPt);
int x=int(cPt.x);
int y=int(cPt.y);
}

Как перевести в double? Можно было бы масштабированием, зная x_max, y_max, x_min, y_min, но есть один нюанс: чарт - это не только плоскость xOy, но и легенда, и отступы с каждой стороны... И в пикселях (0;0) соответствует левому верхнему углу чарта, а не плоскости.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)