Как я могу нарисовать линию между двумя точками на сетке в WPF - PullRequest
0 голосов
/ 13 февраля 2010

У меня есть сетка из 100 столбцов и 100 строк. Я хочу провести линию между центром одного из этих квадратов сетки и другого, скажем, от 45,25 до 75,38.

Я счастлив, что могу нарисовать линию, но как я могу найти координаты x и y центра двух квадратов сетки? Или есть лучший подход, который я пропустил

Ответы [ 2 ]

0 голосов
/ 13 февраля 2010

Ваша презентация должна работать с сеткой, которую вы определяете. Кажется, проблема в том, что представление объекта, к которому вы пытаетесь присоединиться, не центрировано в указанном вами месте сетки. Ваша линия должна быть нарисована от 45,25 до 75,38. Если это, кажется, не обращается из центров, то вещи, нарисованные в 45,25 и 75,38, не нарисованы в центре местоположения сетки.

Если ваш дисплей основан на сетке, то найти центр сетки экрана из теоретического местоположения 45,25 можно примерно так:

screenXcentre = ((xPos-1)*CellWidth)-(CellWidth/2);
screenYcentre = ((yPos-1)*CellHeight)-(CellHeight/2);
0 голосов
/ 13 февраля 2010

Координаты центра линии: (center_x, center_y), где:

center_x = x1 + (x2 - x1/2)
center_y = y1 + (y2 - y1/2)

при x2 > x1 и y2 > y1.

Итак, для вашего примера:

center_x = 45 + ((75 - 45) / 2)
center_y = 25 + ((38 - 25) / 2)

НТН.

...