|
4 / 4 / 0
Регистрация: 01.11.2023
Сообщений: 88
|
|
Построить квадрат13.08.2024, 13:06. Показов 3872. Ответов 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
Построить квадрат из знаков '*' Как построить квадрат в с++ Ввести символ и построить из него квадрат. |
|
Нарушитель
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,616
|
|||||||
| 18.08.2024, 15:10 | |||||||
|
ищем центр квадрата, а учитывая тот факт, что диагонали квадрата пересекаются под прямым углом, вращаем известные точки на 90 градусов относительно центра квадрата я уже писал код для вращения точки относительно другой точки на определенный угол
1
|
|||||||
|
5814 / 1570 / 125
Регистрация: 21.04.2013
Сообщений: 9,151
|
||||||
| 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
|
||||||
|
Нарушитель
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,616
|
|||||||
| 19.08.2024, 00:15 | |||||||
Не вижу ни квадрата, ни чтобы AB была диагональю чего-то...
0
|
|||||||
|
848 / 651 / 323
Регистрация: 24.02.2017
Сообщений: 2,297
|
|
| 19.08.2024, 00:28 | |
|
0
|
|
|
Нарушитель
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,616
|
|||||||
| 19.08.2024, 00:33 | |||||||
|
для твоих точек должен выдать
Вообще, в теме уже есть рабочий код, выделенный как ответ. Не думаю, что найдется что-то лучше. Как вытекает из поста Построить квадрат в коде не должно быть ни тригонометрических функций (они отбрасываются), ни квадратных корней...
0
|
|||||||
|
5814 / 1570 / 125
Регистрация: 21.04.2013
Сообщений: 9,151
|
||
| 19.08.2024, 01:07 | ||
|
0
|
||
|
Вездепух
13214 / 6847 / 1825
Регистрация: 18.10.2014
Сообщений: 17,333
|
||
| 19.08.2024, 05:54 | ||
|
--- Если AB — диагональ квадрата, то сразу можно вычислить точку O - середину этой диагонали. После этого достаточно взять направленный отрезок OA (или OB - неважно) и повернуть его вокруг точки O на +90 и -90 градусов, что тут же странслирует точку A в точки C и D. Все, задача решена. Никаких корней и тригонометрии для выполнения этих действий не нужно. Фактически нужно только уметь делить на 2. Фактически именно это, с непринципиальными вариациями, делает analogov net в #18.
0
|
||
|
Нарушитель
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,616
|
||
| 19.08.2024, 09:24 | ||
0
|
||
|
5814 / 1570 / 125
Регистрация: 21.04.2013
Сообщений: 9,151
|
|||||||
| 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
|
||
|
Нарушитель
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,616
|
|
| 19.08.2024, 12:37 | |
|
analogov net лучше вашего решения все равно ничего не найдется.
Идея с вращением на 90 градусов известных точек A и B вокруг центра квадрата самая оптимальная. Во-первых, центр квадрата легко находится. Во-вторых, 90 градусов идеальны с точки зрения тригонометрии. Так матрица поворота на угол при получаем матрицу А вот координаты точки Это именно то, что сделал analogov net. Все очень просто.
2
|
|
|
5814 / 1570 / 125
Регистрация: 21.04.2013
Сообщений: 9,151
|
|||||||
| 19.08.2024, 13:03 | |||||||
|
Тогда такое решение:
Квадрат с вашим вводом: -2 4 8 9 Правильно получилось?
2
|
|||||||
|
Нарушитель
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,616
|
||||||||
| 19.08.2024, 13:10 | ||||||||
Добавлено через 1 минуту
0
|
||||||||
|
Вездепух
13214 / 6847 / 1825
Регистрация: 18.10.2014
Сообщений: 17,333
|
||
| 19.08.2024, 17:28 | ||
??? Вы продолжаете повторять вещи, которые просто в упор противоречат сами себе. ¯\_(ツ)_/¯
0
|
||
| 19.08.2024, 17:28 | |
|
Построить латинский квадрат используя циклический сдвиг Построить квадрат, который вращается вокруг своего центра на угол a Построить класс для описания плоской геометрической фигуры квадрат Построить классы для описания плоских фигур:круг,квадрат,прямоугольник
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|