Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вычислить точки для построения соединяющей линии между двумя окружностям / 3 сообщений из 3, страница 1 из 1
04.08.2011, 08:34
    #37379858
Alexey Kuznetsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычислить точки для построения соединяющей линии между двумя окружностям
Мне надо на диаграмме соединить линией центры двух окружности.
НО, что бы линия начиналась и заканчивалась не из центров, а из точек пересечения этой линии с окружностями.
Может у кого есть под рукой кусочек кода для вычисления таких точек.
...
Рейтинг: 0 / 0
04.08.2011, 08:40
    #37379864
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычислить точки для построения соединяющей линии между двумя окружностям
Alexey KuznetsovМне надо на диаграмме соединить линией центры двух окружности.
НО, что бы линия начиналась и заканчивалась не из центров, а из точек пересечения этой линии с окружностями.
Может у кого есть под рукой кусочек кода для вычисления таких точек.
навзгляд
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
x1,x2,y1,y2 - координаты окружностей
r1,r2 - Их радиусы

 var  len =  sqrt (sqr(x2-x1)+sqr(y2-y1));

p_x1 = x1+(x2-x1)*r1/len;
p_x2 = x2+(x1-x2)*r2/len;
p_y1 = y1+(y2-y1)*r1/len;
p_y2 = y2+(y1-y2)*r2/len;
...
Рейтинг: 0 / 0
04.08.2011, 09:24
    #37379912
Alexey Kuznetsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычислить точки для построения соединяющей линии между двумя окружностям
Ренат,

Спасибо! Все работает!!!
И никаких синусов и косинусов! и никаких проверок, на углы равные 0, 90 и т.п.
Элегантное решение.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вычислить точки для построения соединяющей линии между двумя окружностям / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]