2012-01-10 4 views
0

У меня есть две точки, и я хочу нарисовать эллипс/круг вокруг этих точек. Позиция этих точек нефиксирована.Как нарисовать эллипс/овал в WPF?

Может ли кто-нибудь мне помочь?

+0

С двумя точками вы можете принять только круг (середина этих точек должна быть центром круга). –

ответ

0

Поскольку точки нефиксированы, когда вы получаете две точки, Я скажу, что вы должны сделать кратчайшее расстояние между ними как диаметр. Вы получите среднюю точку диаметра как Центр. А затем вы можете применить методы и свойства Ellipse для создания круга или затмения.

+0

спасибо много. Но как я могу нарисовать эллипс, используя эту точку и диаметр? – user1140125

+0

Чтобы сделать эллипс u нужно четыре точки, так как формула для эллипса равна x^2/a^2 + y^2/b^2 = 1, где a и b - длина полуосновной оси, второстепенная ось соответственно. Но все же я предложу вам метод в своем следующем комментарии, попробуйте. – vikiiii

+0

Для эллипса максимальное расстояние между ними как диаметром не будет работать, и поиск центра не будет работать. – vikiiii

0

Рассчитайте середину двух точек, это даст вам центр круга.

Рассчитайте расстояние между двумя точками, это дает ширину (и высоту) круга.

Вычитайте половину расстояния от центра. X и половину расстояния от центра. Y, это дает верхний левый угол круга.

<Ellipse Canvas.Top="topLeft.Y" 
     Canvas.Left="topLeft.X" 
     Width="distance" 
     Height="distance"/> 

Примечание: значения являются псевдо-значениями; вам необходимо заменить их на фактические значения.

+0

tks.but я хочу нарисовать овал, а не круглый – user1140125

+0

@ user1140125 - Как вы хотите, чтобы овал определялся двумя точками? –

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