|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.12.2016, 20:04 | #1 |
Форумчанин
Регистрация: 05.11.2015
Сообщений: 167
|
Уравнение круга и прямой
Здравствуйте.
Нужна ваша помощь. Задание таково: Даны координаты трех точек и радиус r. Между первой и второй проведен отрезок. Третья точка - центр круга с радиусом r. Нужно посчитать, какое расстояние отрезок между первыми двумя точками проходит в круге. ------------------- Для этого нужно найти точку, в которой отрезок входит в круг, и точку, из которой он с круга выходит. Я воспользовался уравнением круга и уравнением прямой. (x-x0)^2 + (y-y0)^2 = R2 x0,y0 - центр круга, R - радиус Второе уравнение нужна сначала "создать" y=kx + b y1=kx1 + b y2=kx2 + b Отсюда нужно найти k и b, в итоге получится уравнение вида y=kx + b с известными k и b y можно подставить в первое уравнение круга. После всех квадратов и прочего выйдет обычное квадратное уравнение С него находим x1,x2 А потом через уравнение y=kx + b подставляем найденные x у получаем y1 и y2. В итоге мы получили точку с кордами x1;y1 и x2;y2 Осталось просто узнать расстояние между ними Но программа, увы, работает процентов на 30, в основном недочет - ошибка компиляции В чем ошибка? Код:
Я писал программу и одновременно решал подобное задание, что бы посмотреть, что да как После открытия всех скобок получается 9 чисел Но первое - это просто x^2, а остальные 8 - это те же p1...p8. Ну и радиус с другой стороны Заранее спасибо |
22.12.2016, 20:12 | #2 |
Забанен
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2006
Сообщений: 420
|
Либо корень из отрицательного числа, либо деление на ноль.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
|
22.12.2016, 20:23 | #3 |
Старожил
Регистрация: 02.03.2008
Сообщений: 2,499
|
Ошибка компиляции - это значит что программа просто не будет создана по этому коду.
А если то работает, то нет - значит ошибка в самом алгоритме, в математике. Это сразу видно - у вас ни одного условного оператора. То есть вы не проверяете, а есть ли вообще решение. Оно же не всегда есть: |
22.12.2016, 20:42 | #4 |
Забанен
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2006
Сообщений: 420
|
1) Нужно найти расстояние от центра круга до отрезка (обозначим d)
2) Если d>=r ответ 0. (d=r прямая касается окружности в одной точке) 3) Если d<r ищем ответ, он опять может быть 0.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
|
27.12.2016, 16:31 | #5 |
Форумчанин
Регистрация: 05.11.2015
Сообщений: 167
|
Не помогло
Нашел кратчайшее расстояние от центра к отрезку, однако это ничего не изменило > Код:
|
27.12.2016, 16:57 | #6 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 27.12.2016 в 17:04. |
|
27.12.2016, 17:08 | #7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
неожиданно заковыристая задачка.
во-первых, это не всегда так. посмотрите на рисунок, который я взял отсюда: высота и кратчайшее расстояние - это не одно и то же. во-вторых, подумайте, что будет, если центра окружности и обе точки отрезка лежат на одной прямой. Уверены, что можно построить треугольник в этом случае? упс. Аватар опередил. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поворот круга (алгоритм) | GreenFirefly | Помощь студентам | 8 | 13.07.2015 15:54 |
уравнение прямой | Shinobig | Помощь студентам | 7 | 14.01.2012 22:09 |
Движение круга:) | mitmikha | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 12.04.2011 12:11 |
Площадь круга | sturz | Помощь студентам | 20 | 23.01.2011 11:07 |
Пересечение прямой и круга | CoGnaC | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 11.03.2008 17:01 |