Рисуем круг через три точки в C#

Перпендикулярная биссектриса любой хорды на круге проходит через центр круга. Чтобы найти центр, заданный тремя точками, просто найдите перпендикулярные биссектрисы первых двух и последних двух пар точек и посмотрите, где пересекаются биссектрисы. После того, как вы найдете центр, вычислите расстояние от центра до одной из точек, чтобы получить радиус круга.

Если биссектрисы не пересекаются, три точки являются коллинеарными, поэтому они не определяют круг.

Следующий код показывает, как программа находит круг, определенный тремя точками.

Этот код вычисляет точку (x1, y1) на полпути между двумя первыми точками. Затем он вычисляет вектор & lt; dx1, dy1 & gt; указывая в направлении перпендикулярной биссектрисы для этих точек. Он повторяет эти шаги, чтобы найти перпендикулярную биссектрису второй и третьей точек.

Затем программа использует метод FindIntersection, описанный в сообщении Определите, где две линии пересекаются в C# , чтобы увидеть, где пересекаются два биссектрисы.

Источник: http://csharphelper.com/blog/2016/09/draw-a-circle-through-three-points-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *