реклама на сайте
подробности

 
 
 
Closed TopicStart new topic
> Точки пересечения двух окружностей, Формулы в общем виде для процессора
stepserg
сообщение Aug 5 2008, 05:44
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 99
Регистрация: 6-06-07
Пользователь №: 28 237



Задача: Есть две окружности в плоскости.
Радиусы, координаты центров известны.
Необходимо найти точки пересечения этих окружностей
(естественно, если эти окружности пересекаются).

Решить эту задачу на листе бумаги с известными числовыми значениями
радиусов и центров - не проблема. Решается система квадратных уравнений.

Более громоздкая задача получается, когда нужно представить решение в общем виде,
т.е. чтобы по этим формулам можно было вычислять точки пересечения в DSP-процессоре.

Может кто-нибудь это уже проделал?
А может есть численный метод под такую задачу?
Go to the top of the page
 
+Quote Post
rimpocha
сообщение Aug 5 2008, 07:11
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 6-03-07
Из: Новосибирск, Seattle
Пользователь №: 25 935



Цитата(stepserg @ Aug 5 2008, 12:44) *
Задача: Есть две окружности в плоскости.
Радиусы, координаты центров известны.
Необходимо найти точки пересечения этих окружностей
(естественно, если эти окружности пересекаются).

Решить эту задачу на листе бумаги с известными числовыми значениями
радиусов и центров - не проблема. Решается система квадратных уравнений.

Более громоздкая задача получается, когда нужно представить решение в общем виде,
т.е. чтобы по этим формулам можно было вычислять точки пересечения в DSP-процессоре.

Может кто-нибудь это уже проделал?
А может есть численный метод под такую задачу?


Это шутка да? smile.gif

Решал такие задачи в восьмом классе. К сожалению материалы не сохранились sad.gif


--------------------
НГТУ, Физико-технический факультет, кафедра Лазерных систем
Go to the top of the page
 
+Quote Post
shf_05
сообщение Aug 5 2008, 08:01
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



кто не дает решить кв уравнение на проце?
Go to the top of the page
 
+Quote Post
Doka
сообщение Aug 5 2008, 08:13
Сообщение #4


Electrical Engineer
******

Группа: СуперМодераторы
Сообщений: 2 163
Регистрация: 4-10-04
Пользователь №: 778



перенес тему, как не имеющую прямого отношения к ЦОС, к начинающим


--------------------
Блог iDoka.ru
CV linkedin.com/in/iDoka
Sources github.com/iDoka


Never stop thinking...........................
Go to the top of the page
 
+Quote Post
Tanya
сообщение Aug 5 2008, 09:00
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(stepserg @ Aug 5 2008, 09:44) *
Задача: Есть две окружности в плоскости.
Радиусы, координаты центров известны.
Необходимо найти точки пересечения этих окружностей
(естественно, если эти окружности пересекаются).

Решить эту задачу на листе бумаги с известными числовыми значениями
радиусов и центров - не проблема. Решается система квадратных уравнений.

Более громоздкая задача получается, когда нужно представить решение в общем виде,
т.е. чтобы по этим формулам можно было вычислять точки пересечения в DSP-процессоре.

Может кто-нибудь это уже проделал?
А может есть численный метод под такую задачу?

Квадратное уравнение, говорите... Рассмотрим случай, когда центр второй окружности лежит вне первой...
Сведем преобразованием координат (для простоты) центры на ось x, так, чтобы центр первой окружности радиуса R был в точке (0, 0), тогда центр второй с радиусом r будет в известной точке (A, 0)...
Напишем для точек пересечения...
x*x+y*y = R*R
(A-x)^2 + y*y= r*r
вычтем из первого уравнения второе...
Получим:
(2x-A)*A=(R-r)(R+r)
Дальше просто?
Go to the top of the page
 
+Quote Post
stepserg
сообщение Aug 5 2008, 09:03
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 99
Регистрация: 6-06-07
Пользователь №: 28 237



Это не шутка.
На то он и форум, чтобы обмениваться.
Вдруг уже есть.
Зачем велик изобретать?
И не так все это просто. Нужно выводить.
Летом мозги отказывают smile.gif
На проце квадратных уравнений еще не решал. Вот и стопорюсь.
Go to the top of the page
 
+Quote Post
stepserg
сообщение Aug 11 2008, 11:01
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 99
Регистрация: 6-06-07
Пользователь №: 28 237



На самом деле я поторопился.

Система квадратных уравнений в общем виде может и решается, но получаются громоздкие формулы (я даже их не рассматривал).

По условию моей задачи радиусы двух окружностей одинаковые R1=R2=R.

Исходные уравнения:
(x-xc1)^2 + (y-yc1)^2=R
(x-xc2)^2 + (y-yc2)^2=R

где xc1,yc1, xc2, yc2 – координаты центров окружностей.

Алгоритм нахождения точек пересечения двух окружностей таков:

центр одной из окружностей смещается в начало координат и решается простая система уравнений:

x^2 + y^2 = R
(x – A)^2 + y^2 = R

где А – расстояние между центрами окружностей

Т.е. решается упрощенная система квадратных уравнений в системе координат, которая смещена по оси X на xc1 (или xc2), а по оси Y на yc1 (или yc2) , и повернута на некоторый угол ф, относительно исходной системы координат.

Решение упрощенной системы уравнений:
x1’ = A/2; y1’ = + sqrt(R^2 – (А^2/4))
x2’ = A/2; y2’ = - sqrt(R^2 – (А^2/4))

Затем переводим решение в исходную систему координат по формулам:

Если система координат была повернута на положительный угол ф (против хода часов):
x = a + x’*cosф – y’*sinф
y = b + x’*sinф + y’*cosф

Если система координат была повернута на отрицательный угол ф (по ходу часам):
x = a + x’*cosф + y’*sinф
y = b - x’*sinф + y’*cosф

где:
a = xc1, b = yc1 или a = xc2, b = yc2
А = sqrt(dx^2 + dy^2)
sinф = dy/A
cosф = dx/A
dx = abs(xc1 – xc2)
dy = abs(yc1 – yc2)

Решение такой простецкой задачи может понадобиться, например, при реализации на процессоре алгоритмов круговой интерполяции в станках с ЧПУ (перемещение фрезы по дуге - команды G02 и G03) . В результате находятся координаты центра радиуса, по которому нужно перемещаться из исходной точки (xc1,yc1) в конечную (xc2,yc2).
Go to the top of the page
 
+Quote Post
Herz
сообщение Aug 11 2008, 12:15
Сообщение #8


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



И для DSP это сложная задача?
Go to the top of the page
 
+Quote Post
Kobrinas
сообщение Aug 13 2008, 19:07
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 23
Регистрация: 5-12-07
Пользователь №: 33 015



stepserg, позволь нескромный вопрос: сколько классов ты закончил?
Тупой американский студент, никогда нормально не изучавший математику, и тот знает, что твою систему квадратных уравнений можно написать в Mathcad и попросить решить в символьном виде. И вписать готовые формулы в программу, если недосуг их на листке бумаги за полминуты вывести.
Go to the top of the page
 
+Quote Post
Herz
сообщение Aug 14 2008, 07:18
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Цитата(Kobrinas @ Aug 13 2008, 21:07) *
stepserg, позволь нескромный вопрос: сколько классов ты закончил?
Тупой американский студент, никогда нормально не изучавший математику, и тот знает, что твою систему квадратных уравнений можно написать в Mathcad и попросить решить в символьном виде. И вписать готовые формулы в программу, если недосуг их на листке бумаги за полминуты вывести.

Не надо наговаривать на американских студентов... Математику они знают не хуже нас с Вами. А тупых везде хватает...
Go to the top of the page
 
+Quote Post

Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 10:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01446 секунд с 7
ELECTRONIX ©2004-2016