Предварительное вычисление пересечения линии и квадрата
У меня есть код, который проверяет пересечение линий и ячеек и возвращает общее количество пересеченных линий. Этот код определен в mouseMoveEvent и получает местоположение мыши для проверки пересечения во время выполнения, что работает очень медленно. Мне сказали предварительно вычислить расположение сетки и проверить позже, но я не знаю, как это сделать точно. Буду признателен, если вы предложите способ решения проблемы. Спасибо!
for(int i =0;i< (int)m_axes.size(); ++i){ // number of axes may change
//checking nof polylines in grid cells
if(i<(int)m_axes.size()-1)
for(int ibox = 0; ibox < 30 ; ++ibox){// ibox = horizontal bigger boxes/cells
// get cells and test them one by one to see
// if the mouse pointer is in there.
auto box = get_box(i,ibox);
// check if we are in the cell
if(inAxisAlignedRectangle(box, relative_pos)){ // if mouse in a cell
for(int ibetbox = 0; ibetbox < 5; ++ibetbox){//ibetboxes = each grid cell in big boxes
auto smallbox= get_smallbox (box, ibetbox);
// check if we are in the grid cell
if(inAxisAlignedRectangle(smallbox, relative_pos)){
m_highlight_ibox = ibox;
m_highlight_ibetbox = ibetbox;
m_axis_box_highlight = i;
auto count = countNumber(i, smallbox);
qDebug()<<"Polyline Count: " <<count;
}
}
}
}
}