![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Слияние массивов [D7]
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 выбрасываются все точки, лежащие левее.