Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2009, 19:58   #1
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
Вопрос Как расположить вершины многоугольника против часовой стрелки ?

Существует массив:
Код:
verts: array [0..10] of cpVect;
где cpVect=record
X:single;
y:single;
end;
Verts это массив с вершинами многоугольника. Мне нужно отсортировать все вершины против часовой стрелки, а как сделать не знаю .
P.S. Не обязательно именно многоугольник, если кто знает как сделать такое для трехугольника и четырехугольника то этого будет достадочно.

Последний раз редактировалось Stilet; 21.08.2009 в 09:15.
Вадим Буренков вне форума Ответить с цитированием
Старый 20.08.2009, 20:32   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Для треугольника только два варианта: 123 и 132.
Для одного из вариантов площадь отрицательная:
http://programmersforum.ru/showpost....21&postcount=5
http://programmersforum.ru/showpost....01&postcount=9

Для многоугольника, не знаю, по моему должно быть еще условие (например, выпуклость) иначе точки можно по разному соединить.
alexBlack вне форума Ответить с цитированием
Старый 20.08.2009, 21:33   #3
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Я тут подумал, нужно либо каким-то алгоритмом сортировать все точки против часовой не зависимо от их расположения, либо сначала определять расположение вершин: если по часовой то просто пересортировать массив вершин от конца к началу (первый элемент становится последним, второй предпоследним и.т.д).
Вадим Буренков вне форума Ответить с цитированием
Старый 20.08.2009, 21:45   #4
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от Вадим Буренков Посмотреть сообщение
Я тут подумал, нужно либо каким-то алгоритмом сортировать все точки против часовой не зависимо от их расположения, ...
Сомневаюсь, ведь если мы поменяем точки, будет другой многоугольник.

Цитата:
Сообщение от Вадим Буренков Посмотреть сообщение
...либо сначала определять расположение вершин: если по часовой то просто пересортировать массив вершин от конца к началу (первый элемент становится последним, второй предпоследним и.т.д).
С этим проблем нет. Была тема про направление обхода
alexBlack вне форума Ответить с цитированием
Старый 21.08.2009, 09:22   #5
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
Площадь треугольника вычисляется по формуле

Код:

| | x1 y1 1 |
| S(1, 2, 3) = 1/2! | x2 y2 1 |
| | x3 y3 1 |
Что-то я формулу понять не могу, и что это за черточки (|) ?
Можно пример на delphi?
Вадим Буренков вне форума Ответить с цитированием
Старый 21.08.2009, 10:28   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Это искаженное изображение вычисления определителя матрицы. Просто сдвинь черточки чтоб друг над другом были.

Вроде того.
Не, все равно съежает. Черточки в начале строк не нужны и факториал лишний.

Последний раз редактировалось Stilet; 21.08.2009 в 11:16.
puporev вне форума Ответить с цитированием
Старый 21.08.2009, 10:41   #7
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
Это искаженное изображение вычисления определителя матрицы. Просто сдвинь черточки чтоб друг над другом были.
И что мне это даст? Мне нужна нормальная формула или подпрограмма рассчета площади на delphi. Плиз если кто знает как ее сделать подскажите.
Вадим Буренков вне форума Ответить с цитированием
Старый 21.08.2009, 10:42   #8
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Вот сдесь это написано, а код примитивный, сам напишешь. №8.
http://ru.wikipedia.org/wiki/%D0%A2%...B8.D0.BA.D0.B0
puporev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление вершины в бинарном дереве lebrosha Помощь студентам 2 24.05.2009 13:51
Анимирование стрелки... kentlm Мультимедиа в Delphi 2 14.05.2009 02:17
Как расположить слово по диагонали Wi1D Помощь студентам 27 06.02.2009 20:14
Как расположить в алфавитном порядке слова,содержащиеся в файле? JiLiYa Паскаль, Turbo Pascal, PascalABC.NET 0 20.12.2008 13:58
Как перевернуть изображение по часовой стрелке John_chek Мультимедиа в Delphi 7 09.07.2007 00:24