Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2011, 21:42   #1
xXSilentXx
 
Регистрация: 21.07.2011
Сообщений: 7
По умолчанию Квадрат и прямая

Здравствуйте. Помогите пожалуйста написать программу на языке Си(не С++). Дан квадрат с координатами х1,у1 и х2,у2, так же даны координаты прямой х3,у3 и х4,у4. Нужно определить координаты точек пересечения прямой и квадрата. Теорететически я понимаю как решить надо забить 4-ри уравнения для сторон квадрата и уравнение для прямой через х3,у3 и х4,у4 и решить систему для каждой из сторон и прямой, если точка пересечения имеет координаті принадлежащие множеству АВСД то прямая пересекает квадрат, если не принажлежит, значит прямая не пересекает. А как написать что то не пойму.
xXSilentXx вне форума Ответить с цитированием
Старый 21.07.2011, 22:05   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
если точка пересечения имеет координаті принадлежащие множеству АВСД
Абсолютно не нужное и вредное

Цитата:
и решить систему для каждой из сторон и прямой
И сделать проверку: прямая пересекающая прямую, построенную на стороне квадрата, не обязательно пересекает сторону
p51x вне форума Ответить с цитированием
Старый 21.07.2011, 22:06   #3
D@rkD@iver
Форумчанин
 
Регистрация: 28.07.2009
Сообщений: 189
По умолчанию

формулы выведи, и вставь в программу
пишу программы для студентов и школьников на Pascal, Delphi, C++, WINAPI, assembler
обучаю программированию на паскале(дистанционно);mail: hruslow@gmail.com
D@rkD@iver вне форума Ответить с цитированием
Старый 21.07.2011, 22:13   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
координаты точек пересечения прямой и квадрата.
Квадрат это четыре прямые. (Пересекающиеся отрезки пусть так не суть важно)
Пропиши проверки на пересечение каждой из сторон - этого хватит. Уверен что преподаватель оценит твои потуги, тем паче это будет выглядеть по-студентски с простым подходом. Если сумеешь объяснить как прямая с прямой пересекается преподаватель не станет к мелочам прикарбовуваться.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.07.2011, 12:43   #5
xXSilentXx
 
Регистрация: 21.07.2011
Сообщений: 7
По умолчанию

Уравнение прямой в общем виде y = kx + b,
где k - угловой коэффициент, равный (y4-y3)/(x4-x3)
А b находится, зная координаты точки на этой прямой, как y - kx. А вот какие уравнения получатся для 4-ёх сторон квадрата? Если по задаче даны только 2 точки x1,y1 и x2,y2.
xXSilentXx вне форума Ответить с цитированием
Старый 23.07.2011, 12:53   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Если по задаче даны только 2 точки x1,y1 и x2,y2.
Ну правильно - это габаритные точки. Относительно их можно найти и две оставшиеся.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.07.2011, 13:17   #7
xXSilentXx
 
Регистрация: 21.07.2011
Сообщений: 7
По умолчанию

А|-----|B
| |
D|-----|С

По задаче нам даны точки А и C, получается что координаты D это х1,у2, а координаты В х2,у1
xXSilentXx вне форума Ответить с цитированием
Старый 23.07.2011, 13:28   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Уравнение прямой в общем виде y = kx + b,
Математику не учили

Цитата:
Если по задаче даны только 2 точки x1,y1 и x2,y2.
Ну если школу (универ) прогуливали, то откройте хоть вики. Это стандартные формулы.

Цитата:
По задаче нам даны точки А и C, получается что координаты D это х1,у2, а координаты В х2,у1
Вас не смущает, что в условии даны координаты ВСЕХ 4-х точек. Квадрат не характеризуется именно таким расположением. Он вполне может быть "наклоненный".

Последний раз редактировалось p51x; 23.07.2011 в 13:30.
p51x вне форума Ответить с цитированием
Старый 23.07.2011, 13:51   #9
xXSilentXx
 
Регистрация: 21.07.2011
Сообщений: 7
По умолчанию

А получается здесь надо через уравнение прямой, проходящей через две точки
(у-у1)/(у2-у1)=(х-х1)/(х2-х1) получить все 4 уравнения и через эту же формулу записать уравнение прямой. Так или опять не правильно подумал?
xXSilentXx вне форума Ответить с цитированием
Старый 23.07.2011, 15:10   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Так или опять не правильно подумал?
Отето уже похоже на правду )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кординатна прямая (pascal) Besidnuk Помощь студентам 4 09.12.2010 19:34
Прямая и Окружность Ukeeler Помощь студентам 5 02.11.2010 17:50
Прямая VirusOfLove Помощь студентам 8 05.12.2009 09:37
Прямая линия serres Общие вопросы Delphi 1 04.11.2007 18:33
Прямая в пространстве Neuros1s Общие вопросы Delphi 12 29.06.2007 00:06