Форум программистов, компьютерный форум, киберфорум
Наши страницы

Геометрия

Войти
Регистрация
Восстановить пароль
 
 
ask_you
Заблокирован
#1

Описание всех прямых, проходящих через окружность - Геометрия

16.03.2017, 20:14. Просмотров 426. Ответов 22
Метки нет (Все метки)

Здравствуйте. У меня такой вопрос, можно ли как - то одним выражением, ну или хотя бы несколькими, какой - то формулой или интервалами записать все прямые, пересекающие заданную окружность в 2D?

Ну вот допустим есть окружность (x - xc)^2 + (y - yc)^2 = R^2, мне нужно для неё как - то записать (ну или вывести) формулой или как - то ещё все прямые, пересекающие данную окружность (не важно, в одной или нескольких точках), допустим прямые задаются как y = kx + b ну или как (x - xc)/dx = (y - yc)/dx, собственно не важно как они задаются, просто нужно хоть в каком то виде обозначить все прямые, проходящие через заданную окружность. Это возможно? Если да, то как?
Разумеется, перечислить все подряд огромным списком или задать через интеграл - не подходит, нужна какая - то формула...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2017, 20:14
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Описание всех прямых, проходящих через окружность (Геометрия):

Написать уравнения прямых, проходящих через точку - Геометрия
Добрый день! Прошу помощи с одной задачей. Написать уравнения прямых, проходящих через точку (3,1) на расстоянии 2 от точки (1,-2). ...

Составить уравнение прямых, проходящих через точку - Геометрия
составить перевести построить

Составить уравнение прямых, проходящих через точку - Геометрия
Составить уравнение прямых, проходящих через точку A (-2;4) 1.параллельно прямой 3x+8y=12 2.перпендикулярно прямой x=5t-1; y=6t+3 ...

Составить уравнения прямых, проходящих через точку параллельно прямой - Геометрия
Составить уравнения прямых, проходящих через точку М(-1;4), параллельно прямой x=4t-1, y=2t+7 Что сделать с t?

Составить уравнение прямых проходящих через точку М и образующих с прямой АВ углы 45* - Геометрия
Составить уравнение прямых проходящих через точку М(2;7) и образующих с прямой АВ, где А(-1;7) В(8;-2) углы 45* ребят помогите, учусь...

Найти уравнения двух прямых на плоскости, проходящих через две данные точки с заданным расстоянием между ними - Геометрия
Добрый вечер. Нужна помощь в выполнении расчетной работы. Задание 1:Через начало координат и точку М (1; 3) проходят две параллельные...

22
jogano
Модератор
Эксперт по математике/физике
4024 / 2561 / 857
Регистрация: 09.10.2009
Сообщений: 4,502
Записей в блоге: 4
16.03.2017, 20:44 #2
http://www.cyberforum.ru/cgi-bin/latex.cgi?\left| \left(x-x_c \right) \cos \varphi +\left(y-y_c \right) \sin \varphi\right| \leq R, \: \: \varphi  \in \mathbb{R}
http://www.cyberforum.ru/cgi-bin/latex.cgi?\varphi - это угол наклона между перпендикуляром из данного вам центра окружности к искомой прямой и направлением ОХ+. Меняя этот угол, получаете прямые с разными наклонами. Модуль слева - это расстояние от данного центра до искомой прямой, т.е. длина перпендикуляра.
1
Excalibur921
716 / 424 / 67
Регистрация: 12.10.2013
Сообщений: 2,835
17.03.2017, 00:34 #3
Цитата Сообщение от ask_you Посмотреть сообщение
записать все прямые, пересекающие заданную окружность в 2D?
Их бесконечно. Для чего изначально?
1
Symon
Эксперт по математике/физике
1974 / 1848 / 527
Регистрация: 29.09.2012
Сообщений: 3,784
Записей в блоге: 13
17.03.2017, 07:50 #4
Цитата Сообщение от ask_you Посмотреть сообщение
можно ли как - то одним выражением, ну или хотя бы несколькими,
Любая прямая ax+by+c=0, коэффициенты которой удовлетворяют условию
http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{|a\cdot x_c+b\cdot y_c+c|}{\sqrt{a^2+b^2}}\leq R ,
где (xc,yc) - центр круга, R - радиус круга, пересекает этот круг.

Добавлено через 12 минут
Цитата Сообщение от Symon Посмотреть сообщение
Любая прямая
Второй способ: Любая прямая
http://www.cyberforum.ru/cgi-bin/latex.cgi?(x-x_c)\cdot \cos(t)+ (y-y_c)\cdot \sin(t) +d=0
пересекает этот круг, если |d|<=R, t - любое действительное число
1
Байт
Эксперт C
17714 / 11735 / 1871
Регистрация: 24.12.2010
Сообщений: 23,534
18.03.2017, 09:43 #5
Можно еще исходить из уравнения прямой в отрезках x/a + y/b = 1
Тогда получится условие ab/sqrt(a2+b2) <= R
Впрочем, все это те же яйца, только в профиль.
1
kabenyuk
1719 / 1298 / 308
Регистрация: 19.11.2012
Сообщений: 2,541
19.03.2017, 05:59 #6
Еще можно в виде такой системы:
http://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
a(x-x_0)+b(y-y_0)=0,\\<br />
(x_0-x_c)^2+(y_0-y_c)^2=R^2.<br />
2
ask_you
Заблокирован
20.03.2017, 23:21  [ТС] #7
Ладно, спрошу прямо. Как, максимально быстро, выбрать все точки, которые находятся не дальше определённого расстояния до луча в 3D? Весь вопрос в структуре данных... Как бы это элегантней сделать, KD-Tree? Уж очень это kd не удобное... Есть что - то ещё?
0
Байт
Эксперт C
17714 / 11735 / 1871
Регистрация: 24.12.2010
Сообщений: 23,534
20.03.2017, 23:27 #8
Цитата Сообщение от ask_you Посмотреть сообщение
Ладно, спрошу прямо.
Начали про Фому, а он, оказывается, про Ерему.
Математически ваши точки попадают в полуцилиндр с полусферой на конце.
А уж как там устроены ваши структуры... Что за дерево там у вас растет... И какие на ем сучки торчат...
1
jogano
Модератор
Эксперт по математике/физике
4024 / 2561 / 857
Регистрация: 09.10.2009
Сообщений: 4,502
Записей в блоге: 4
20.03.2017, 23:28 #9
Как я понимаю, геометрическим местом точек будет внутренность цилиндра, для которого данный луч есть осью.
Цитата Сообщение от ask_you Посмотреть сообщение
выбрать все точки
ВСЕ не выйдет, точек бесконечно много.
Цитата Сообщение от ask_you Посмотреть сообщение
KD-Tree?
А это что за нематематический зверь?
1
ask_you
Заблокирован
20.03.2017, 23:35  [ТС] #10
Цитата Сообщение от jogano Посмотреть сообщение
Как я понимаю, геометрическим местом точек будет внутренность цилиндра, для которого данный луч есть осью.
Цитата Сообщение от Байт Посмотреть сообщение
Математически ваши точки попадают в полуцилиндр с полусферой на конце.
На самом деле не обязательно высчитывать конкретное расстояние от точки до луча, можно просто брать точки на определённой как бы не геометрической дистанции, то есть (для 2D): (X - Cx)/Dx - (Y - Cy)/Dy = difference, так вот эту разниму и можно считать расстоянием.
Цитата Сообщение от jogano Посмотреть сообщение
ВСЕ не выйдет, точек бесконечно много.
Ну в смысле конечно же у меня не бесконечное кол-во точек, у меня есть массив с ~ 1 000 000 000 точек
Цитата Сообщение от Байт Посмотреть сообщение
А уж как там устроены ваши структуры...
в этом то и весь вопрос, как говориться, "покажи мне структуру данных, а алгоритм поиска я уже сам как - нибуть придумаю" :-)
Цитата Сообщение от jogano Посмотреть сообщение
А это что за нематематический зверь?
Да... это из области программирования
https://ru.wikipedia.org/wiki/K-%D0%...B5%D0%B2%D0%BE
0
Байт
Эксперт C
17714 / 11735 / 1871
Регистрация: 24.12.2010
Сообщений: 23,534
20.03.2017, 23:44 #11
Цитата Сообщение от jogano Посмотреть сообщение
геометрическим местом точек будет внутренность цилиндра, для которого данный луч есть осью.
Плюс еще пол-сферы с центром в начале луча
Говоря о полуцилиндре, я имел в виду нечто типа распиленного бревна. Распил приходится на плоскость, перпендикулярную лучу и проходящую через его начало. Какое это может иметь отношение к KD-деревьям, я не знаю...
Цитата Сообщение от jogano Посмотреть сообщение
точек бесконечно много.
Возможно, не так уж и много. Это же, блин, программирование. А у них там - пиксели. Про бесконечность они слышали последний раз, когда зачет по пределам сдавали.

Добавлено через 8 минут

Не по теме:

"Программиста в разделе Геометрия уподоблю слону в посудной лавке" К.Прутков


ask_you, не обижайтесь, к слову пришлось.
Вряд ли вам тут смогут помочь. Нужно знать приемы 3Д-программирования, структуры, с которыми там имеют дело. И опыт работы в этом направлении. Тут, на форуме, есть специальные разделы для программирования. И там могут случайно найтись люди, со всеми этими понятиями знакомые.
А тут - чистая математика, башня из слоновой кости, так сказать.
2
ask_you
Заблокирован
21.03.2017, 00:03  [ТС] #12
Странно, всегда считал, что математики дружат с программированием
0
Байт
Эксперт C
17714 / 11735 / 1871
Регистрация: 24.12.2010
Сообщений: 23,534
21.03.2017, 00:32 #13
Цитата Сообщение от ask_you Посмотреть сообщение
всегда считал, что математики дружат с программированием
Да, это дисциплины не взаимоисключающие. Вот я, к примеру, пасусь и там и здесь. И в области программирования у меня возникают задачки, в которых есть немножко математики. И даже геометрии. Вот, при работе в системе QGraphicsView-QGraphicsScene у меня возникли проблемы с аффинными преобразованиями. Если бы они относилось к математике, я бы постарался сформулировать математически вопрос так, чтобы он был понятен уважаемымjogano, kabenyuk, Symon. И я уверен, они бы мне помогли, если это вообще возможно
Но проблема именно в структурах и методах относящихся непосредственно к используемой там программистской технике. В структурах и методах. В которых эти уважаемые люди, как я думаю, ни в зуб ногой. (Если это не так - прошу прощения).
У вас вопрос специальный. У этого вопроса своя терминология, свои методы, свой круг людей, которые что-то в этом понимают. Ищите этот круг.
А ваше недоумение напоминает человека, который пришел в вычислительный центр со сломанным утюгом. "Неужели никто починить не может? Но вы же программисты?!"

Добавлено через 4 минуты
ask_you, Хочу добавить. Что касаемо математики. на твой вопрос ответили полностью, и даже не без изящества.
2
ask_you
Заблокирован
21.03.2017, 08:41  [ТС] #14
Цитата Сообщение от Байт Посмотреть сообщение
Что касаемо математики. на твой вопрос ответили полностью, и даже не без изящества
Да, я видел и за это всем спасибо, хотя до этого я уже и сам догадался
Просто математика - это так сказать читерская дисциплина, то есть там делается всё в лоб, без какой - либо оптимизации под ЭВМ. То есть, допустим, как найти все точки в массиве размером в миллиард (а может и в 100 миллиардов), которые удовлетворяют требованию, ну допустим y = 2*x? Ну как как, скажет математик, берёшь и перебираешь всё А программист скажет, нужно создать массив с ключом y/x, отсортировать его и бинарным поиском в logN + n найти все эти точки, т.к. обычно в программах, особенно связанных с 3D графикой, важна скорость и брутафорсные методы как бы не в чите
Но всё равно, ребят, ещё раз всем спасибо!
0
Excalibur921
716 / 424 / 67
Регистрация: 12.10.2013
Сообщений: 2,835
21.03.2017, 09:43 #15
Цитата Сообщение от ask_you Посмотреть сообщение
математика - это так сказать читерская дисциплина
Нет, это вы в ней просто не шарите.
Цитата Сообщение от ask_you Посмотреть сообщение
там делается всё в лоб, без какой - либо оптимизации под ЭВМ.
Глупости =).
Вон даже метод наименьших квадратов. Корень не извлекают из подсчета расстояний. Это уже оптимизация. А почти все методы оптимизации? Это такие книги по 600 листов. Далеко не брутофорс…уже оптимизация.
Цитата Сообщение от ask_you Посмотреть сообщение
А программист скажет,
Не скажет. Программист сначала слушает все ТЗ а потом думает где\что оптимизировать.

Цитата Сообщение от ask_you Посмотреть сообщение
, отсортировать его и бинарным поиском
А потом раз и массив перемешался…тогда оптимизация не нужна и будет дольше брутофорса.
1
21.03.2017, 09:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2017, 09:43
Привет! Вот еще темы с ответами:

Написать уравнения окружностей, проходящих через данные точки. - Геометрия

Написать уравнения трех плоскостей, проходящих через вершину D и перпендикулярных соответственно сторонам тетраэдра. - Геометрия
Дан тетраэдр: А (—1, 2, 5), В (0, —4, 5), С (—3, 2, 1) и D (1, 2, 4). Написать уравнения трех плоскостей, проходящих через вершину D и...

Нарисовать дугу соединяющую два вектора, проходящих через общий центр, зная радиус - Геометрия
Здравствуйте форумчане. Имеется точка, которую пронизывают два вектора (луча). Зная радиус нужно соединить эти лучи дугой (центром...

В прямоугольной системе координат напишите уравнение сферы, проходящей через точку и через окружность - Геометрия
В прямоугольной системе координат напишите уравнение сферы,проходящей через точку (1,5,1) и через окружность x^2+y^2-2x-10y+23=0,лежащую на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru