С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Геометрия
Войти
Регистрация
Восстановить пароль
 
 
ask_you
Заблокирован
1

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

16.03.2017, 20:14. Просмотров 450. Ответов 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
Ответы с готовыми решениями:

Составить уравнение прямых, проходящих через точку
Составить уравнение прямых, проходящих через точку A (-2;4) 1.параллельно...

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

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

Составить уравнения прямых, проходящих через точку параллельно прямой
Составить уравнения прямых, проходящих через точку М(-1;4), параллельно прямой...

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

22
jogano
Модератор
Эксперт по математике/физике
4354 / 2794 / 960
Регистрация: 09.10.2009
Сообщений: 5,014
Записей в блоге: 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
764 / 436 / 71
Регистрация: 12.10.2013
Сообщений: 2,928
17.03.2017, 00:34 3
Цитата Сообщение от ask_you Посмотреть сообщение
записать все прямые, пересекающие заданную окружность в 2D?
Их бесконечно. Для чего изначально?
1
Symon
Эксперт по математике/физике
2158 / 1980 / 592
Регистрация: 29.09.2012
Сообщений: 4,121
Записей в блоге: 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
19256 / 12375 / 2614
Регистрация: 24.12.2010
Сообщений: 25,492
18.03.2017, 09:43 5
Можно еще исходить из уравнения прямой в отрезках x/a + y/b = 1
Тогда получится условие ab/sqrt(a2+b2) <= R
Впрочем, все это те же яйца, только в профиль.
1
kabenyuk
Эксперт по математике/физике
1855 / 1401 / 345
Регистрация: 19.11.2012
Сообщений: 2,802
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
19256 / 12375 / 2614
Регистрация: 24.12.2010
Сообщений: 25,492
20.03.2017, 23:27 8
Цитата Сообщение от ask_you Посмотреть сообщение
Ладно, спрошу прямо.
Начали про Фому, а он, оказывается, про Ерему.
Математически ваши точки попадают в полуцилиндр с полусферой на конце.
А уж как там устроены ваши структуры... Что за дерево там у вас растет... И какие на ем сучки торчат...
1
jogano
Модератор
Эксперт по математике/физике
4354 / 2794 / 960
Регистрация: 09.10.2009
Сообщений: 5,014
Записей в блоге: 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
19256 / 12375 / 2614
Регистрация: 24.12.2010
Сообщений: 25,492
20.03.2017, 23:44 11
Цитата Сообщение от jogano Посмотреть сообщение
геометрическим местом точек будет внутренность цилиндра, для которого данный луч есть осью.
Плюс еще пол-сферы с центром в начале луча
Говоря о полуцилиндре, я имел в виду нечто типа распиленного бревна. Распил приходится на плоскость, перпендикулярную лучу и проходящую через его начало. Какое это может иметь отношение к KD-деревьям, я не знаю...
Цитата Сообщение от jogano Посмотреть сообщение
точек бесконечно много.
Возможно, не так уж и много. Это же, блин, программирование. А у них там - пиксели. Про бесконечность они слышали последний раз, когда зачет по пределам сдавали.

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

Не по теме:

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


ask_you, не обижайтесь, к слову пришлось.
Вряд ли вам тут смогут помочь. Нужно знать приемы 3Д-программирования, структуры, с которыми там имеют дело. И опыт работы в этом направлении. Тут, на форуме, есть специальные разделы для программирования. И там могут случайно найтись люди, со всеми этими понятиями знакомые.
А тут - чистая математика, башня из слоновой кости, так сказать.
2
ask_you
Заблокирован
21.03.2017, 00:03  [ТС] 12
Странно, всегда считал, что математики дружат с программированием
0
Байт
Эксперт C
19256 / 12375 / 2614
Регистрация: 24.12.2010
Сообщений: 25,492
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
764 / 436 / 71
Регистрация: 12.10.2013
Сообщений: 2,928
21.03.2017, 09:43 15
Цитата Сообщение от ask_you Посмотреть сообщение
математика - это так сказать читерская дисциплина
Нет, это вы в ней просто не шарите.
Цитата Сообщение от ask_you Посмотреть сообщение
там делается всё в лоб, без какой - либо оптимизации под ЭВМ.
Глупости =).
Вон даже метод наименьших квадратов. Корень не извлекают из подсчета расстояний. Это уже оптимизация. А почти все методы оптимизации? Это такие книги по 600 листов. Далеко не брутофорс…уже оптимизация.
Цитата Сообщение от ask_you Посмотреть сообщение
А программист скажет,
Не скажет. Программист сначала слушает все ТЗ а потом думает где\что оптимизировать.

Цитата Сообщение от ask_you Посмотреть сообщение
, отсортировать его и бинарным поиском
А потом раз и массив перемешался…тогда оптимизация не нужна и будет дольше брутофорса.
1
ask_you
Заблокирован
21.03.2017, 10:19  [ТС] 16
Цитата Сообщение от Excalibur921 Посмотреть сообщение
А потом раз и массив перемешался…тогда оптимизация не нужна и будет дольше брутофорса.
Хорошо, тогда вопрос к знатокам Как можно максимально быстро выбрать ближайшую к начальной точки луча окружность в 3D пространстве из огромного массива, которую этот луч пересекает, если таковые есть конечно?
P.S.: окружности в массиве с разными радиусами и могут друг друга пересекать.
0
Excalibur921
764 / 436 / 71
Регистрация: 12.10.2013
Сообщений: 2,928
21.03.2017, 11:01 17
Может эффективней погуглить типа “софтверный рендер” ?
Или вы хотите выделять объекты в 3д?
Изначальная задача что?
1
ask_you
Заблокирован
21.03.2017, 11:15  [ТС] 18
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Изначальная задача что?
Ray Tracing / Ray Marching

Добавлено через 5 минут
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Может эффективней погуглить типа “софтверный рендер” ?
Обычные рендеры хотя бы один раз перебирают всё и перемножают на матрицы трансформации, это очень медленно.
0
Excalibur921
764 / 436 / 71
Регистрация: 12.10.2013
Сообщений: 2,928
21.03.2017, 11:35 19
Почему решили что сделаете лучше десятка готовых? Уверен никто не сделает лучше чем есть, их полировали математики. А вообще зачем велики? Берите хоть POV-Ray и вперед. На вики готовых целый список…Или гуглить типа Ray Tracing book.

В любой книге наверно сначала вынесут мозг математикой а потом в конце книги мелким шрифтом будет вроде:
Все эти алгоритмы давно реализованы в ряде бесплатных \платных рендеров…но вам было интересно читать ведь правда? =))

Инфы море…полезность сомнительна.
Вот случайная ссылка
Название: ScreenShot00118.jpg
Просмотров: 19

Размер: 5.3 Кб
http://ray-tracing.ru/
1
ask_you
Заблокирован
21.03.2017, 12:54  [ТС] 20
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Вот случайная ссылка
а.... я всё это разумеется уже видел
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Почему решили что сделаете лучше десятка готовых? Уверен никто не сделает лучше чем есть, их полировали математики.
Вот по этому и решил, что сделаю лучше, т.к. у меня голова не забита кучей блоков типа "так нельзя и так тоже нельзя", я этого не знаю, поэтому для меня можно всё и полная свобода действий
На самом деле я уже придумал алгоритм, сейчас я его тестирую и пытаюсь оптимизировать, т.к. там есть ещё много над чем работать... Просто думал, тут у кого то будут какие - то революционные идеи... Хотя наверное гупо надеяться на то, что кто - то "за так" выдаст свой секрет
Вот, последний черновичок:

0
21.03.2017, 12:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2017, 12:54

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

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

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


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

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

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