Есть чарт; заданы границы изменения координат точек: 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) соответствует левому верхнему углу чарта, а не плоскости. |