Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Решение геометрической задачи


Автор: Virun 15.10.2006, 21:44
Здравствуйте! Если кому не трудно, не могли бы вы мне помочь в решении задачки на паскале:
Цитата

На плоскости заданы окружность и прямая. Определить их взаимное расположение- ,пересекаются , касаются, расположены произвольно.

Сам я обладаю крайне скудными знаниями в программировании, потому прошу вас мне помочь. smile 

Заранее благодарен.

Автор: Palladin 15.10.2006, 23:08
ГЫ, я бы помог но я забыл формулуsmile))(математическую) напиши тогда задачу сделаюsmile

Автор: DeadLine 16.10.2006, 11:09
Уравнение прямой k*x+b=y и окружности x^2+y^2=r^2

Автор: Alexeis 16.10.2006, 12:24

M
alexeis1
Модератор: Название темы должно отражать ее суть!

Автор: ivashkanet 16.10.2006, 12:40
Цитата(Virun @  15.10.2006,  21:44 Найти цитируемый пост)
На плоскости заданы окружность и прямая. Определить их взаимное расположение- ,пересекаются , касаются, расположены произвольно.

Это математика. Программированием тут пахнет чуть-чуть, самую малость smile
Цитата(Virun @  15.10.2006,  21:44 Найти цитируемый пост)
На плоскости заданы окружность и прямая.

Как они заданы? Точками? Уравнением?

Судя по 
Цитата(DeadLine @  16.10.2006,  11:09 Найти цитируемый пост)
Уравнение прямой k*x+b=y и окружности x^2+y^2=r^2
 уравнением

Делаем так: подставляем уравнение прямой в уравнение окружности:
Код

x^2 + (k*x+b)^2 = r^2

Возводим в квадрат и приводим подобные:
Код

(1+k^2)x^2 + 2kbx + (b^2 - r^2) = 0

Так как нам нужно узнать только их взаимное расположение, то считаем дискриминант:
Код

D = 4k^2*b^2 - 4(1 + k^2)(b^2 - r^2)  // можно это упростить, но мне лень :)


Теперь, если:
1) D < 0, то корней нет => прямая и окружность не пересекаются,
2) D = 0, то корень 1 => прямая и окружность касаются,
3) D > 0, то корней два => прямая и окружность пересекаются.

Запрограммировать это ничего не стоит smile

Добавлено @ 12:45 
Кроме того, 
Цитата(DeadLine @  16.10.2006,  11:09 Найти цитируемый пост)
x^2+y^2=r^2
 -- уравнение окружности с центром в точке (0, 0)
Вместо него нужно использовать (x - a)^2 + (y - b)^2 = r^2 --- центр в точке (а, b).
Но суть от этого не меняется

Автор: Virun 16.10.2006, 16:15
Огромное вам спасибо, помогли! smile 

P.S. Товарищи модераторы, ну что тут сказать...извиняюсь  smile 

Автор: Alexeis 16.10.2006, 16:26
Цитата(Virun @  16.10.2006,  16:15 Найти цитируемый пост)
ну что тут сказать...извиняюсь 

Да нужны не извинения а новый вариант заголовка, чтобы это все выглядело прилично smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)