Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Слияние массивов [D7]


Страницы:   1 2

NickName ©   (2010-12-07 11:58:00) 

Доброго времени суток. Имеется два массива с точками окружности элипса, ну или другой произвольной фигуры, но для начала пока элипс. Необходимо слить эти два массива в один, при этом исключить все точки попавшие на плоскости совмещаемых элипсов.
Скриншот для полной понятности моей "хотелки":
http://s47.radikal.ru/i116/1012/3e/06b16d869909.jpg

Буду благодарен за любые объяснения ну или пинок в нужную сторону раскопок :)


Кщд   (2010-12-07 12:35:00) [21]

Для каждой точки 1-го массива(b):
1. находим ближайшую из 2-го. назовем её a1;
2. берем ближайшую к а1 слева(а0) и справа(а2), строим векторы A1(а1, а0), A2(а1, а2), B(а0, b);
3. если векторные произведения: A1xB, BxA2, AxB, - одного знака, "стираем" с рисунка точку b.

Повторяем для массива №2.


NickName   (2010-12-07 12:10:00) [22]

Да, окружности так и идут точками как на рисунке, т.е. не сплошная линия, а только наметки для полигона. Но при надобности массивы можно и "допилить" до кондиции Брезенхемом, но не хотелось бы, ибо большая затратность, получится, по времени выволнения...


Юрий Зотов   (2010-12-07 12:09:00) [23]

Последнее слово - правее, а не левее.


Юрий Зотов   (2010-12-07 12:08:00) [24]

Если возможно аналитически определить абсциссу точек пересечения эллипсов, то из массива 1 выбрасываются все точки, лежащие левее, а из массива 2 выбрасываются все точки, лежащие левее.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо