|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.10.2019, 21:33 | #1 |
Регистрация: 02.10.2019
Сообщений: 3
|
Задача на прямоугольник
Задачи: "Четвертая вершина. Даны действительные числа x1, y1, x2, y2, x3, y3. Известно, что точки с координатами (x1,y1), (x2,y2), (x3,y3) являются вершинами прямоугольника. Определить координаты четвертой вершины прямоугольника."
У меня есть решение для этой задачи, но только при условии что прямоугольник лежит параллельно осям x и y, а если он лежит не параллельно, то как тогда помогите пожалуйста. |
02.10.2019, 21:59 | #2 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
x0 = (x1+x3)/2
y0 = (y1+y3)/2 dx = x0-x2 dy = y0-y2 x4 = x0+dx y4 = y0+dy В общем, геометрия, 6-й класс. Все понятно из рисунка. Конечно, предполагается, что точки 1,2,3,4 идут по порядку по периметру прямоугольника. Нужно проверять, прямой ли угол при вершине 2, а если нет - то при какой. Это - уже НИР Последний раз редактировалось digitalis; 02.10.2019 в 22:11. |
02.10.2019, 22:07 | #3 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Один из способов:
Четвёртая точка отстоит по X и Y от точки X1, Y1 на столько же, насколько точка X3, Y3 отстоит от точки X2, Y2. Т.е. находишь dX и dY (dX = X3-X2, dY = Y3-Y2) и затем координаты четвёртой точки: X4 = X1+dX, Y4 = Y1+dY.
Как-то так, ...
|
03.10.2019, 19:32 | #4 | |
Регистрация: 02.10.2019
Сообщений: 3
|
Цитата:
Возможно это будет наглостью, но как примерно будет выглядеть код на C++, я в школе просто Python учил, а в универе вот C++ |
|
03.10.2019, 19:43 | #5 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
Я с Си приплюснутым вообще не работал, но смутно подозреваю, что то, что я намулюкал, уже и есть код, если добавить ; , ввод-вывод, инклюды и определение переменных. Эти штуки взять из букваря по С++ и добавить туда вот вышесказанное.
Последний раз редактировалось digitalis; 03.10.2019 в 19:47. |
03.10.2019, 19:46 | #6 |
Регистрация: 02.10.2019
Сообщений: 3
|
К сожалению 3 точки могут быть в произвольном порядке, твой код действительно работает, но только при таком рисунке. А как можно понять какой угол прямой фиг его знает...
|
03.10.2019, 19:55 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А чего тебе тот порядок? Коль по условию прямоугольный треугольник задан, то найди его гипотенузу. Она самая длинная среди сторон такого треугольника. И сразу узнаешь какой угол прямой. Если еще и проверить, что на самом деле треугольник прямоугольный - примени теорему Пифагора
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
03.10.2019, 19:57 | #8 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
Легко. Даже прямой угол искать не надо. Перебором (Пифагором ) находим две точки, лежащие дальше всех одна от другой - они, значицца, на диагонали и имеют фамилию (x1,y1) и (x3,y3). Оставшаяся, сталбыть, (x2,y2).
Код писать не буду, а то совсем обленишься. Аватар Это у нас синхронное плавание получается |
03.10.2019, 21:09 | #9 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
У меня остался вопрос.
Зачем делать ненужную операцию по поиску координат средней точки диагоналей? Если нашли две противоположные точки, то далее см. пост 3.
Как-то так, ...
|
04.10.2019, 11:17 | #10 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
Методов может быть много. Даже экзотики ради - методом Монте-Карло. И оптимальный вариант никто не обещал. Как туземец на коне: что вижу, о том и пою.
Последний раз редактировалось digitalis; 05.10.2019 в 10:01. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Класс прямоугольник | dmtrb | C# (си шарп) | 0 | 18.11.2017 20:51 |
Прямоугольник | RAFA91 | Win Api | 0 | 10.03.2016 12:35 |
точка и прямоугольник | julian97 | Помощь студентам | 2 | 01.12.2013 21:31 |
прямоугольник | ronny137 | Помощь студентам | 2 | 21.04.2011 19:34 |
C#, прямоугольник | Goldcoding | Фриланс | 2 | 09.04.2010 20:34 |