У меня есть две точки, и я хочу нарисовать эллипс/круг вокруг этих точек. Позиция этих точек нефиксирована.Как нарисовать эллипс/овал в WPF?
Может ли кто-нибудь мне помочь?
У меня есть две точки, и я хочу нарисовать эллипс/круг вокруг этих точек. Позиция этих точек нефиксирована.Как нарисовать эллипс/овал в WPF?
Может ли кто-нибудь мне помочь?
Поскольку точки нефиксированы, когда вы получаете две точки, Я скажу, что вы должны сделать кратчайшее расстояние между ними как диаметр. Вы получите среднюю точку диаметра как Центр. А затем вы можете применить методы и свойства Ellipse для создания круга или затмения.
спасибо много. Но как я могу нарисовать эллипс, используя эту точку и диаметр? – user1140125
Чтобы сделать эллипс u нужно четыре точки, так как формула для эллипса равна x^2/a^2 + y^2/b^2 = 1, где a и b - длина полуосновной оси, второстепенная ось соответственно. Но все же я предложу вам метод в своем следующем комментарии, попробуйте. – vikiiii
Для эллипса максимальное расстояние между ними как диаметром не будет работать, и поиск центра не будет работать. – vikiiii
Wpf предоставляет много классов Shape
для рисования различных видов фигур. Ellipse
Класс - один из них. Вы можете попробовать это. Здесь: http://msdn.microsoft.com/en-us/library/ms747393.aspx
спасибо, что ответь мне. – user1140125
Рассчитайте середину двух точек, это даст вам центр круга.
Рассчитайте расстояние между двумя точками, это дает ширину (и высоту) круга.
Вычитайте половину расстояния от центра. X и половину расстояния от центра. Y, это дает верхний левый угол круга.
<Ellipse Canvas.Top="topLeft.Y"
Canvas.Left="topLeft.X"
Width="distance"
Height="distance"/>
Примечание: значения являются псевдо-значениями; вам необходимо заменить их на фактические значения.
tks.but я хочу нарисовать овал, а не круглый – user1140125
@ user1140125 - Как вы хотите, чтобы овал определялся двумя точками? –
С двумя точками вы можете принять только круг (середина этих точек должна быть центром круга). –