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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Dew Drop
0 / 0 / 0
Регистрация: 21.03.2010
Сообщений: 6
#1

Определить, является ли фигура прямоугольником - C++

19.04.2012, 11:09. Просмотров 1670. Ответов 1
Метки нет (Все метки)

У меня имеется класс Rectangle, где имеется 4 координаты вершин (декартовы) в области первого квадранта от 0.0 до 20.0 ( по y и по х). Определить является ли фигура прямоугольником?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2012, 11:09     Определить, является ли фигура прямоугольником
Посмотрите здесь:
C++ Определить является ли четырехугольник прямоугольником
Является ли четырехугольник прямоугольником C++
C++ Является ли четырехугольник, заданный координатами вершин, прямоугольником
C++ Выяснить, является ли данный четырехугольник параллелограммом, трапецией, прямоугольником, ни тем, ни другим
C++ Является ли фигура ромбом.
Определить, может ли белая фигура пойти на поле C++
C++ Определить сможет ли шахматная фигура съесть пешку по ее координатам
C++ Определить класс «Шахматная фигура» и производные классы «Ферзь»
C++ Определить может ли белая фигура пойти на указанное поле
Определить, является ли текст является записью четного числа в семеричной системе C++
Определить, является ли значение целочисленной переменной х четным. Если является, то вывести на печать значен C++
Определить, бьет ли одна шахматная фигура другую сейчас или на следующем ходу C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rotfeder
35 / 0 / 1
Регистрация: 18.04.2012
Сообщений: 3
19.04.2012, 12:03     Определить, является ли фигура прямоугольником #2
Четырехугольник - прямоугольный, если у него два противоположных угла - прямые.
Прямой ли угол определяем по скалярному произведению векторов.
Если точки прямоугольника 0-1-2-3, то
abs((x[2]-x[1])*(x[0]-x[1]) + (y[2]-y[1])*(y[0]-y[1])) < eps
abs((x[2]-x[3])*(x[0]-x[3]) + (y[2]-y[3])*(y[0]-y[3])) < eps

Плюс надо проверить прямоугольник на вырожденность:
никакие три точки не лежат на одной прямой - можно через векторное произведение,
никакие 2 точки не совпадают
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru