Форум программистов, компьютерный форум CyberForum.ru

Прямые на плоскости(С++) - C++

Восстановить пароль Регистрация
 
Zoger
3 / 3 / 0
Регистрация: 10.10.2010
Сообщений: 68
31.05.2013, 11:50     Прямые на плоскости(С++) #1
Доброго времени суток господа. Помогите пожалуйста написать эту задачку в С++. Сам с этой задачей пока не разбирался, времени нету, а задач много (сам пока другими разбираюсь )

Прямая на плоскости может быть задано уравнением ax+by+c=0, где a и b одновременно не равны нулю. Будем рассматривать прямые только с целыми коэффициентами a,b,c.Пусть даны коэффициенты нескольких прямых: a1, b1, c1, a2,b2,c2,...,an,bn,cn

а) Определить, имеются ли среди этих прямых совпадающие или параллельные.
б) Определить, имеются ли три прямые, пересекающиеся в одной точке.
в) Определить, находится ли данные прямые в общем положении. (Прямые находятся в общем положении, если все они различны, никакие две из них не параллельны и никакие три не пересекаются в одной точке.)

Добавлено через 22 часа 23 минуты
Может у кого нибудь есть похожие задачки?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2013, 11:50     Прямые на плоскости(С++)
Посмотрите здесь:

Определить пересекаются две прямые, параллельны или совпадают.Две прямые заданы уравнениями: ax+by+c=0, px+qy+r=0 C++
Про прямые C++
Узнать перпендикулярны ли прямые C++
C++ помогите пожалуйста задать прямые с помощью структур прямые задаются точкой и направляющим вектором. дальше как делать знаю
C++ Две прямые описываются уравнениями напечатать координаты точки пересечения этих прямых, либо сообщить что эти прямые совпада
Параллельные прямые C++
C++ Определить пересекаются ли две прямые, заданные своими уравнениями на плоскости

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Гром
 Аватар для Гром
199 / 118 / 10
Регистрация: 20.03.2009
Сообщений: 1,075
Записей в блоге: 15
31.05.2013, 16:01     Прямые на плоскости(С++) #2
а) Две прямые параллельны, если A1/A2 = B1/B2 != C1/C2 (поскольку некоторые из чисел могут быть равны нулю, лучше проверять, что A1*B2 = A2*B1 и A1*C2 != A2*C1) и совпадают, если A1/A2 = B1/B2 = C1/C2 (аналогичные сравнения на случай равенства нулю каких-то коэффициентов). Соответственно, перебираем все пары, проверяем для них эти условия.

б) Точка пересечения двух прямых - это решение системы двух уравнений (аналогично предыдущему, сначала проверим, что прямые пересекаются: A1/A2 != B1/B2, иначе не имеет смысл искать решение)
A1*x + B1* y + C1 = 0
A2*x + B2*y + C2 = 0

A1*A2*x + B1*A2*y + C1*A2 = 0
A1*A2*x + B2*A1*y + C2*A1 = 0

y0 = -(C2*A1 + C1*A2) / (B1*A2 + B2*A1)
x0 = -(B1*y + C1)/A1

Точка (x0, y0) принадлежит прямой A,B,C, если A*x0 + B*y0 + C = 0

Для каждой пары прямых ищем их точку пересечения (если они вообще пересекаются), затем проверяем, принадлежит ли эта точка другим прямым

в) Если не реализуются ситуации из пунктов а) и б), то прямые находятся в общем положении
Yandex
Объявления
31.05.2013, 16:01     Прямые на плоскости(С++)
Ответ Создать тему
Опции темы

Текущее время: 05:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru