![]() |
1. Заголовок темы должен быть информативным. В противном случае тема закрывается и удаляется ...
2. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
3. Одна тема - один вопрос (задача)
4. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Veers |
![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 2 Пол: Мужской Реальное имя: Кирилл Репутация: ![]() ![]() ![]() |
Сколько ни гуглил, не искал на форумах (в т.ч. и этом). но так и не нашел, либо не понимаю следующее:
Составить уравнениЯ касательных к окружности, проходящих через заданную точку на плоскости. Причем не одно уравнение, а два, как это следует логически. Исходные данные - радиус окружности ®, точка центра окружности (xa, ya), точка на плоскости (xb, yb). Вообще то задача стоит найти касательные при вводе и т.д. и т.п, но я справился с тем случаем, когда точка лежит на окружности. Хотелось бы получить помощь по вышеизложенному вопросу. Заранее спасибо. -------------------- Turbo Pascal жесток...
|
![]() ![]() |
TarasBer |
![]()
Сообщение
#2
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Касательная проходит через (xb, yb), значит её уравнение такое:
kx(X-xb) + ky(Y-yb) = 0 Мы знаем, что расстояние от точки xa, ya до этой прямой должно быть равно R Для начала вспомним, что расстояние от нуля до прямой, заданной уравнением (kx*x+ky*y=c) равно c/sqrt(sqr(kx)+sqr(ky)) (ну площадь треугольника делим на основание) Если брать расстояние не от нуля, а от (xa, ya), то получим в числителе с-kx*xa-ky*ya В данном случае с=kx*xb+ky*yb Таким образом, уравнение будет такое: kx(xb-xa) + ky(yb-ya)/sqrt(sqr(kx)+sqr(ky)) = R Умножив обе части на знаменатель и возведя в квадрат получим такое уравнение на kx и ky: cxx*sqr(kx)+2cxy*kx*ky+cyy*sqr(ky) = 0 Где cxx=sqr(xb-xa)-sqr®; cyy=sqr(yb-ya)-sqr®; cxy = (xb-xa)(yb-ya); Это однородное квадратное уравнение легко решается. Подойдут kx = -cxy+-sqrt(sqr(cxy)-cxx*cyy) ky = cxx либо kx = cyy ky = -cxy-+sqrt(sqr(cxy)-cxx*cyy) Выглядит, увы, несимметрично. Подкоренное выражение положительно, когда точка вне круга, отрицательно, когда точка в круге и нулевое для точки на круге. -------------------- |
Veers |
![]()
Сообщение
#3
|
![]() Группа: Пользователи Сообщений: 2 Пол: Мужской Реальное имя: Кирилл Репутация: ![]() ![]() ![]() |
Касательная проходит через (xb, yb), значит её уравнение такое: kx(X-xb) + ky(Y-yb) = 0 Мы знаем, что расстояние от точки xa, ya до этой прямой должно быть равно R Для начала вспомним, что расстояние от нуля до прямой, заданной уравнением (kx*x+ky*y=c) равно c/sqrt(sqr(kx)+sqr(ky)) (ну площадь треугольника делим на основание) Если брать расстояние не от нуля, а от (xa, ya), то получим в числителе с-kx*xa-ky*ya В данном случае с=kx*xb+ky*yb Таким образом, уравнение будет такое: kx(xb-xa) + ky(yb-ya)/sqrt(sqr(kx)+sqr(ky)) = R Умножив обе части на знаменатель и возведя в квадрат получим такое уравнение на kx и ky: cxx*sqr(kx)+2cxy*kx*ky+cyy*sqr(ky) = 0 Где cxx=sqr(xb-xa)-sqr®; cyy=sqr(yb-ya)-sqr®; cxy = (xb-xa)(yb-ya); Это однородное квадратное уравнение легко решается. Подойдут kx = -cxy+-sqrt(sqr(cxy)-cxx*cyy) ky = cxx либо kx = cyy ky = -cxy-+sqrt(sqr(cxy)-cxx*cyy) Выглядит, увы, несимметрично. Подкоренное выражение положительно, когда точка вне круга, отрицательно, когда точка в круге и нулевое для точки на круге. Покорнейше благодарю, только прибыл домой, пока нет времени проверить, но я думаю, что все правильно)) -------------------- Turbo Pascal жесток...
|
TarasBer |
![]()
Сообщение
#4
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Только сейчас дошло, что надо считать оба варианта ответа и брать тот, в котором числа по модулю больше. Так как может возникнуть пара (0, 0), она не годится.
-------------------- |
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 17:04 |