2016-05-03 3 views
0

У меня есть LineShape в моей форме, и мне нужно, чтобы при щелчке метка отображалась точно в середине этой строки, какова математика, которую я должен сделать, чтобы определить эту среднюю точку?Как узнать середину LineShape

ответ

2

LineShape выставляет свои координаты с X1, X2, Y1 и Y2. Нахождение в центре этого является основной геометрии:

LineShape line = /*...*/; 
Label label = /*..*/; 

// calculate the center of the line 
var center = new Point((line.X1 + line.X2)/2, (line.Y1 + line.Y2)/2); 

// center the label on the line 
label.Top = center.Y - label.Height/2 
label.Left = center.X - label.Width/2 
+1

Последним шагом будет установить '' Location.X' и Location.Y' лейбла к значениям 'x' и' y' что @ Xiaoy312 упоминается выше. –

+1

@Sylverac Фактически, это не центрирует метку на линии, но она центрирует верхний левый угол метки на линии. – Xiaoy312

+0

Ах, да, я забыл, что происхождение позиции находится в верхнем левом углу. –

Смежные вопросы