mity99
Новичок
|
На координатной плоскости даны три точки, узнать лежат ли они на одной прямой ? Вроде не сложно но у меня не получилось так что помогите.
|
Всего сообщений: 12 | Присоединился: декабрь 2008 | Отправлено: 18 дек. 2008 18:43 | IP
|
|
mity99
Новичок
|
даны три точки A, B, C, если нет, то вычислить угол: а, в, с. Это туда ^
|
Всего сообщений: 12 | Присоединился: декабрь 2008 | Отправлено: 18 дек. 2008 18:47 | IP
|
|
paradise
Долгожитель
|
Цитата: mity99 написал 18 дек. 2008 18:43 На координатной плоскости даны три точки, узнать лежат ли они на одной прямой ? Вроде не сложно но у меня не получилось так что помогите.
а как вы делаете? Алгоритм, действительно, лёгкий, Вам нужно строить прямую по двум любым точкам, а потом проверять элементарное условие, "если координаты третьей точки удовлетворяют уравнению прямой, то все 3 точки лежат на одной прямой".
Цитата: mity99 написал 18 дек. 2008 18:47 даны три точки A, B, C, если нет, то вычислить угол: а, в, с. Это туда ^
Опять же какие точки? На плоскости или в пространстве? Какой угол вычислить и что значит "туда ^"???
|
Всего сообщений: 428 | Присоединился: ноябрь 2008 | Отправлено: 20 дек. 2008 0:36 | IP
|
|
bekas
Долгожитель
|
Чтобы узнать, лежат ли три данные точки (на плоскости) на одной прямой, надо принять их за вершины треугольника и найти его площадь S. Если окажется S=0, то точки лежат на одной прямой. Для S существует такая формула: S = 0.5 * [(x1y2+x2y3+x3y1) - (y1x2+y2x3+y3x1)], где xi, yi - координаты соответствующих точек. Иногда эта формула дает отрицательное значение, поэтому необходимо брать абсолютное значение. Естественно, для определения расположения трех точек на одной прямой умножение на 0.5 не надо выполнять...
|
Всего сообщений: 379 | Присоединился: январь 2006 | Отправлено: 20 дек. 2008 14:10 | IP
|
|
mity99
Новичок
|
Оба моих сообщения это одна задача, извеняюсь конечно что так получилось вот она вся: Даны три точки А(x1;y1), B(x2;y2), C(x3;y3). Определить лежат ли они на одной прямой, если нет, то вычислить угол АВС. А про треугольник - это сильно я бы ни зачто не догадался.
|
Всего сообщений: 12 | Присоединился: декабрь 2008 | Отправлено: 20 дек. 2008 20:27 | IP
|
|
mity99
Новичок
|
Извиняюсь : Даны три точки на координатной плоскости
|
Всего сообщений: 12 | Присоединился: декабрь 2008 | Отправлено: 20 дек. 2008 20:28 | IP
|
|
mity99
Новичок
|
про умножение на 0,5 я не совсем понял
|
Всего сообщений: 12 | Присоединился: декабрь 2008 | Отправлено: 20 дек. 2008 20:31 | IP
|
|
bekas
Долгожитель
|
Для анализа расположения точек на одной прямой достаточно вычислить [(x1y2+x2y3+x3y1) - (y1x2+y2x3+y3x1)] и проанализировать это выражение на 0. То есть нет необходимости вычислять 0.5 * [(x1y2+x2y3+x3y1) - (y1x2+y2x3+y3x1)] (Сообщение отредактировал bekas 20 дек. 2008 22:15)
|
Всего сообщений: 379 | Присоединился: январь 2006 | Отправлено: 20 дек. 2008 22:14 | IP
|
|
bekas
Долгожитель
|
Для определения угла между прямыми необходимо вычислить их угловые коэффициенты: m1 = (y2-y1)/(x2-x1) m2 = (y2-y3)/(x2-x3) Тогда угол можно получить по формулам: tg(f) = (m2-m1)/(1+m1m2) tg(f) = (m1-m2)/(1+m1m2) в зависимости от того, какая прямая считается подвижной, а какая неподвижной. Иначе говоря, из углового коэффициента неподвижной прямой надо вычитать угловой коэффициент подвижной.
|
Всего сообщений: 379 | Присоединился: январь 2006 | Отправлено: 20 дек. 2008 22:34 | IP
|
|
Volonter
Новичок
|
Вот задачка Даны целые числа a1, a2,... Известно что a10 и что среди a2, a3,... есть хотябы одно отрицательное число. Пусть a1, ..., an - члены данной последовательности, предшествующие первому отрицательному члену(n заранее неизвестно). Получить max(a1, a1a2,...a1a2...an);
|
Всего сообщений: 8 | Присоединился: ноябрь 2008 | Отправлено: 20 дек. 2008 23:04 | IP
|
|
|