10金币
你好,请问一下我现在想要使用鼠标选择3D图表上的点,然后求出最大值,但是使用鼠标点击3d图表时,显示的坐标和标签位置不一样,是x,y,z的计算公式有问题吗
private bool MouseToDataCoord(Point mousePos, ref double x, ref double y, ref double z)
{
// 获取3D图表数据
Chart3DDataSetGrid gridset = (Chart3DDataSetGrid)c1Chart3D1.ChartGroups[0].ChartData.SetGrid;
// 获取图表区域
Rectangle chartArea = c1Chart3D1.ClientRectangle;
// 检查鼠标是否在图表区域内
if (!chartArea.Contains(mousePos))
return false;
// 计算数据坐标
int col = (int)((mousePos.X - chartArea.Left) / (double)chartArea.Width * gridset.ColumnCount);
int row = (int)((mousePos.Y - chartArea.Top) / (double)chartArea.Height * gridset.RowCount);
if (row >= 0 && row < gridset.RowCount && col >= 0 && col < gridset.ColumnCount)
{
x = gridset.RowOrigin + row * gridset.RowDelta;
y = gridset.ColumnOrigin + col * gridset.ColumnDelta;
z = gridset.GetValue(row, col);
return true;
}
return false;
}
|
|