|
4 / 4 / 0
Регистрация: 01.11.2023
Сообщений: 88
|
|
Построить квадрат13.08.2024, 13:06. Показов 3995. Ответов 34
Помогите пожалуйста с задачей, очень важно!!!
Заданы координаты точек A(xa, ya) и B(xb, yb). Найдите две точки C и D такие, что ACBD — квадрат, причём AB — его диагональ. Формат ввода В единственной строке находятся четыре целых числа xa, ya, xb, yb, по модулю не превышающих 1000. Гарантируется, что точки A и B не совпадают. Формат вывода В первой строке выведите координаты точки C, во второй — координаты точки D. Точки можно выводить в произвольном порядке. Координаты необходимо вывести с точностью до пятого знака после запятой.
0
|
|
| 13.08.2024, 13:06 | |
|
Ответы с готовыми решениями:
34
Построить квадрат из знаков '*' Как построить квадрат в с++ Ввести символ и построить из него квадрат. |
|
Нарушитель
6697 / 3098 / 1064
Регистрация: 01.06.2021
Сообщений: 11,980
|
|||||||
| 18.08.2024, 15:10 | |||||||
|
ищем центр квадрата, а учитывая тот факт, что диагонали квадрата пересекаются под прямым углом, вращаем известные точки на 90 градусов относительно центра квадрата я уже писал код для вращения точки относительно другой точки на определенный угол
1
|
|||||||
|
5840 / 1597 / 127
Регистрация: 21.04.2013
Сообщений: 9,249
|
||||||
| 18.08.2024, 17:57 | ||||||
|
DanMAm,
Для решения задачи необходимо определить координаты точек C и D таким образом, чтобы ACBD образовывал квадрат с диагональю AB. Пусть координаты точек A(x_a, y_a) и B(x_b, y_b) заданы. Для нахождения точек C(x_c, y_c) и D(x_d, y_d), можно использовать следующие рассуждения: Если AB — диагональ квадрата, то вектор AB можно повернуть на 90 и на -90 градусов, чтобы получить векторы AC и BD соответственно. Координаты точек C и D тогда можно получить путем прибавления и вычитания соответствующих векторов к координатам точки A.
0
|
||||||
|
Нарушитель
6697 / 3098 / 1064
Регистрация: 01.06.2021
Сообщений: 11,980
|
|||||||
| 19.08.2024, 00:15 | |||||||
Не вижу ни квадрата, ни чтобы AB была диагональю чего-то...
0
|
|||||||
|
848 / 651 / 323
Регистрация: 24.02.2017
Сообщений: 2,297
|
|
| 19.08.2024, 00:28 | |
|
0
|
|
|
Нарушитель
6697 / 3098 / 1064
Регистрация: 01.06.2021
Сообщений: 11,980
|
|||||||
| 19.08.2024, 00:33 | |||||||
|
для твоих точек должен выдать
Вообще, в теме уже есть рабочий код, выделенный как ответ. Не думаю, что найдется что-то лучше. Как вытекает из поста Построить квадрат в коде не должно быть ни тригонометрических функций (они отбрасываются), ни квадратных корней...
0
|
|||||||
|
5840 / 1597 / 127
Регистрация: 21.04.2013
Сообщений: 9,249
|
||
| 19.08.2024, 01:07 | ||
|
0
|
||
|
Вездепух
13235 / 6867 / 1827
Регистрация: 18.10.2014
Сообщений: 17,407
|
||
| 19.08.2024, 05:54 | ||
|
--- Если AB — диагональ квадрата, то сразу можно вычислить точку O - середину этой диагонали. После этого достаточно взять направленный отрезок OA (или OB - неважно) и повернуть его вокруг точки O на +90 и -90 градусов, что тут же странслирует точку A в точки C и D. Все, задача решена. Никаких корней и тригонометрии для выполнения этих действий не нужно. Фактически нужно только уметь делить на 2. Фактически именно это, с непринципиальными вариациями, делает analogov net в #18.
0
|
||
|
Нарушитель
6697 / 3098 / 1064
Регистрация: 01.06.2021
Сообщений: 11,980
|
||
| 19.08.2024, 09:24 | ||
0
|
||
|
5840 / 1597 / 127
Регистрация: 21.04.2013
Сообщений: 9,249
|
|||||||
| 19.08.2024, 11:41 | |||||||
|
Диагональ квадрата образует угол 45 градусов с каждой из его сторон, поэтому для того чтобы найти направление одной из сторон квадрата, нужно изменить угол относительно диагонали. Ищем не саму сторону, параллельную диагонали, а перпендикулярные направления сторон квадрата. Стороны квадрата перпендикулярны друг другу. Поэтому, когда мы разворачиваем диагональ на 90 градусов, мы получаем направление вектора, которое совпадает с направлением одной из сторон квадрата. Если повернуть вектор на 45 градусов от диагонали, мы получим направление, которое параллельно одной из сторон квадрата (например, сторону, идущую вверх или вправо). Однако для полного определения формы квадрата нужны обе стороны. Поворот на 90 градусов относительно диагонали позволяет получить обе стороны квадрата одновременно. Один из этих векторов укажет на одну сторону, а другой на перпендикулярную сторону квадрата. Примерно вот так:
Вывод: 6 -2 2 -6 Получился квадрат.
0
|
|||||||
|
2532 / 1130 / 495
Регистрация: 17.11.2018
Сообщений: 2,840
|
||
| 19.08.2024, 11:57 | ||
|
0
|
||
|
Нарушитель
6697 / 3098 / 1064
Регистрация: 01.06.2021
Сообщений: 11,980
|
|
| 19.08.2024, 12:37 | |
|
analogov net лучше вашего решения все равно ничего не найдется.
Идея с вращением на 90 градусов известных точек A и B вокруг центра квадрата самая оптимальная. Во-первых, центр квадрата легко находится. Во-вторых, 90 градусов идеальны с точки зрения тригонометрии. Так матрица поворота на угол при получаем матрицу А вот координаты точки Это именно то, что сделал analogov net. Все очень просто.
2
|
|
|
5840 / 1597 / 127
Регистрация: 21.04.2013
Сообщений: 9,249
|
|||||||
| 19.08.2024, 13:03 | |||||||
|
Тогда такое решение:
Квадрат с вашим вводом: -2 4 8 9 Правильно получилось?
2
|
|||||||
|
Нарушитель
6697 / 3098 / 1064
Регистрация: 01.06.2021
Сообщений: 11,980
|
||||||||
| 19.08.2024, 13:10 | ||||||||
Добавлено через 1 минуту
0
|
||||||||
|
Вездепух
13235 / 6867 / 1827
Регистрация: 18.10.2014
Сообщений: 17,407
|
||
| 19.08.2024, 17:28 | ||
??? Вы продолжаете повторять вещи, которые просто в упор противоречат сами себе. ¯\_(ツ)_/¯
0
|
||
| 19.08.2024, 17:28 | |
|
Построить латинский квадрат используя циклический сдвиг Построить квадрат, который вращается вокруг своего центра на угол a Построить класс для описания плоской геометрической фигуры квадрат Построить классы для описания плоских фигур:круг,квадрат,прямоугольник
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге).
Задача:
Программно добавить префикс в нумерацию документов.
Решение:
В модуле объекта. . .
|
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
|
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него.
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952
Инструкция внутри.
https:/ / youtu. be/ VpfFZSUDGnQ. . .
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|