![]() |
|
#16
|
||||
|
||||
![]() Да вы совсем сдурели, смотрите, есть три точки, по ним можно построить треугольник, длины сторон известны, по ним можно найти угол между катетами, если угол равен pi/2 в первом треугольнике и во втором, то фигура - прямоугольник.
ПРЯ-МО-У-ГОЛЬ-НИК a² = b² + c² – 2bc cosα — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 09.11.2011 в 20:16. |
#17
|
||||
|
||||
![]() Имхо 3 сравнения сторон быстрее, чем проверка всех углов или поиск наибольшей стороны и проверка угла напротив нее для двух треугольников.
Стороны же надо сравнивать какие, текущую и ту, которая образована другими двумя точками. И так 3 раза. jmp $ ; Happy End! The Cake Is A Lie. |
#18
|
||||
|
||||
![]() Написано же, "С помощью тригонометрических формул" а не арифметикой.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 09.11.2011 в 20:37. |
#19
|
||||
|
||||
![]() Цитата:
![]() jmp $ ; Happy End! The Cake Is A Lie. |
#20
|
||||
|
||||
![]() А если пользователь введет координаты, скажем:
A [0, 1] B [3, 1] C [0, 1] D [3, 1] — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#21
|
||||
|
||||
![]() Тогда это прямоугольник с нулевой высотой
![]() ![]() Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#22
|
|||
|
|||
![]() Для того чтобы утверждать что 4-угольник есть квадрат
необходимо доказать что 1. все стороны равны между собой. 2. все углы-прямые. Здесь один из авторов предлагает проверить равенство сторон и двух диагоналей. Действительно, если стороны равны и одновременно равны 2 диагонали- то это квадрат. Но вспомним, что компбьютер вычисляет длиму отрезка по теореме Пифагора. Поэтому вместо того чтобы вычислять длины двух диагоналей проще доказать что угол А-прямой (те 2 смежные стороны и диагональ удовлетворяют теореме Пифагора) Из того что угол А- прямой и стороны равны автоматически следует что все углы-прямые и следовательно 4-угольник есть квадрат. Доказателььство этого утверждения предоставляем читателю. Итак, введем систему координат с началом в вершине А. Это не нарушает общности доказательства, тк очень легко перенести координатную сетку параллельно самой себе. А вот поворачивать оси чтобы ось ОХ совпала с одной из сторон- не будем ввиду сложности преобразования. а теперь код Код:
для сокращения выкладок делаем подстановку X2^2 + Y2^2=R В результате очевидных преобразований получаем систему уравнений R = (X2-X3)^2 + (Y2-Y3)^2 R = (X3-X4)^2 + (Y3-Y4)^2 R = X4^2 + Y4^2 2*R = (X2-Y4)^2 + (Y2-Y4)^2 известен еще древним египтянам. Кроме того и вычисления также производятся с некоторой точностью. Поэтому сравнивать на равенство нельзя и мы должны смириться с тем что доказать что 4- угольник есть квадрат мы можем только с некоторой погрешностью. Обозначим ее Epsilon. Итак, перенеся все в левую часть получаем Код:
if (abs(R - (X2-X3)^2 - (Y2-Y3)^2) <=Epsilon) and (abs(R - (X3-X4)^2 - (Y3-Y4)^2) <=Epsilon) and (abs(R - X4^2 - Y4^2) <=Epsilon) and (abs(2*R - (X2-Y4)^2 - (Y2-Y4)^2) <=Epsilon) then ShowMessage('Квадрат'); И между прочим есть непростой момент. А что будет если перепутать последовательность вершин? Тогда мы получим вообще странную фигуру с пересекающимися сторонами. Не знаю как точно сформулировано задание. Но можно подумать и над этим.. Последний раз редактировалось chainik, 13.11.2011 в 01:38. |
#23
|
||||
|
||||
![]() Мдааа... Ну вы блин даете
![]() Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |