Построение шара из произвольного кол-ва вершин
От: vvs86 Великобритания  
Дата: 07.07.05 17:28
Оценка:
Собственно именно такая задача. Надо построить шар из неопределённого кол-ва вершин равномерно распределённых по его поверхности. Пока делаю так: изначально есть пирамида имеющая основой треугольник — 4 вершины. Все добавочные вершины распределяются путём созданя дополнительных вершин на векторах от центра шара и сквозь центр треугольника, если вершин много эта операция рекурсивно повторяется для меньших треуголников. Проблема в том что при таком подходе вершины распределяются неравномерно, к примеру при 8 вершинах должен быть куб...
Я тут немного поломал себе голову над этим делом а потом решил что скорее всего изобретаю велосепед.

Спасибо
Re: Построение шара из произвольного кол-ва вершин
От: _DAle_ Беларусь  
Дата: 07.07.05 18:49
Оценка:
Здравствуйте, vvs86, Вы писали:

V> Собственно именно такая задача. Надо построить шар из неопределённого кол-ва вершин равномерно распределённых по его поверхности. Пока делаю так: изначально есть пирамида имеющая основой треугольник — 4 вершины. Все добавочные вершины распределяются путём созданя дополнительных вершин на векторах от центра шара и сквозь центр треугольника, если вершин много эта операция рекурсивно повторяется для меньших треуголников. Проблема в том что при таком подходе вершины распределяются неравномерно, к примеру при 8 вершинах должен быть куб...

V> Я тут немного поломал себе голову над этим делом а потом решил что скорее всего изобретаю велосепед.

V>Спасибо


Не очень понял предлагаемый метод. Можно подумать над правильностью следующего варианта.

1. Находим среднее арифметическое векторов, соответствующих точкам. Точка, представляемая этим вектором лежит внутри сферы.
2. Вводим функцию f, равную разности между максимальным и минимальным расстоянием от нашей точки до точек на поверхности шара.
3. С помощью градиентного спуска минимизируем эту функцию.

На первый взгляд должно работать
Re[2]: Построение шара из произвольного кол-ва вершин
От: vvs86 Великобритания  
Дата: 07.07.05 20:02
Оценка:
Здравствуйте, _DAle_, Вы писали:

_DA>Здравствуйте, vvs86, Вы писали:


V>> Собственно именно такая задача. Надо построить шар из неопределённого кол-ва вершин равномерно распределённых по его поверхности. Пока делаю так: изначально есть пирамида имеющая основой треугольник — 4 вершины. Все добавочные вершины распределяются путём созданя дополнительных вершин на векторах от центра шара и сквозь центр треугольника, если вершин много эта операция рекурсивно повторяется для меньших треуголников. Проблема в том что при таком подходе вершины распределяются неравномерно, к примеру при 8 вершинах должен быть куб...

V>> Я тут немного поломал себе голову над этим делом а потом решил что скорее всего изобретаю велосепед.

V>>Спасибо


_DA>Не очень понял предлагаемый метод. Можно подумать над правильностью следующего варианта.


_DA>1. Находим среднее арифметическое векторов, соответствующих точкам. Точка, представляемая этим вектором лежит внутри сферы.

_DA>2. Вводим функцию f, равную разности между максимальным и минимальным расстоянием от нашей точки до точек на поверхности шара.
_DA>3. С помощью градиентного спуска минимизируем эту функцию.

_DA>На первый взгляд должно работать


Проблема в том что самих-то точек на поверхности нет, есть кол-во точек
Re[3]: Построение шара из произвольного кол-ва вершин
От: mihoshi Россия  
Дата: 08.07.05 07:00
Оценка:
Здравствуйте, vvs86, Вы писали:

V>Проблема в том что самих-то точек на поверхности нет, есть кол-во точек


В смысле, известно только сколько точек, а координаты их неизвестны?
Re[4]: Построение шара из произвольного кол-ва вершин
От: vvs86 Великобритания  
Дата: 08.07.05 07:32
Оценка:
Здравствуйте, mihoshi, Вы писали:

M>Здравствуйте, vvs86, Вы писали:


V>>Проблема в том что самих-то точек на поверхности нет, есть кол-во точек


M> В смысле, известно только сколько точек, а координаты их неизвестны?


Да
Re: Построение шара из произвольного кол-ва вершин
От: raskin Россия  
Дата: 08.07.05 08:18
Оценка:
vvs86 wrote:
> Собственно именно такая задача. Надо построить шар из неопределённого
> кол-ва вершин равномерно распределённых по его поверхности. Пока делаю
> так: изначально есть пирамида имеющая основой треугольник — 4 вершины.
> Все добавочные вершины распределяются путём созданя дополнительных
> вершин на векторах от центра шара и сквозь центр треугольника, если
> вершин много эта операция рекурсивно повторяется для меньших
> треуголников. Проблема в том что при таком подходе вершины
> распределяются неравномерно, к примеру при 8 вершинах должен быть куб...
> Я тут немного поломал себе голову над этим делом а потом решил что
> скорее всего изобретаю велосепед.

Если это делается один раз при создании шара, то можно создать случайные
точки в кубе, проецировать их на сферу, что даст равномерное
распределение в среднем. После чего имитировать отталкивание: каждая
точка смещается в направлении от большинства близких. За некоторое
количество шагов получится достаточно равномерное распределение.
Posted via RSDN NNTP Server 2.0 beta
Re[2]: Построение шара из произвольного кол-ва вершин
От: conraddk Россия  
Дата: 08.07.05 09:56
Оценка:
Здравствуйте, raskin, Вы писали:

R>Если это делается один раз при создании шара, то можно создать случайные

R>точки в кубе, проецировать их на сферу, что даст равномерное
R>распределение в среднем. После чего имитировать отталкивание: каждая
R>точка смещается в направлении от большинства близких. За некоторое
R>количество шагов получится достаточно равномерное распределение.
Насчет отталкивания. "Смещается в направлении от большинства близких" — это как-то неопределенно

Представим, что точки на поверхности шара — это одноименные заряды, соединенные рычагами с центром шара. Такая физическая система должна прийти в равновесие. Вычислим равнодействующую сил для каждого заряда (точнее, ее тангенциальную составляющую) и будем перемещать точки по поверхности сферы в этом направлении, учитывая модуль вычисленного вектора. После каждого перемещения пересчитываем равнодействующую. Когда модуль наибольшего вектора становится достаточно мал, то есть достигнута требуемая точность, прекращаем вычисления.
Д.К. << RSDN@Home 1.1.4 beta 5 rev. 395>>
Все на свете должно происходить медленно и неправильно...
Re[3]: Построение шара из произвольного кол-ва вершин
От: raskin Россия  
Дата: 08.07.05 10:08
Оценка:
conraddk wrote:
> Насчет отталкивания. "Смещается в направлении от большинства близких" —
> это как-то неопределенно
>
> Представим, что точки на поверхности шара — это одноименные заряды,
> соединенные рычагами с центром шара. Такая физическая система должна
> прийти в равновесие. Вычислим равнодействующую сил для каждого заряда
> (точнее, ее тангенциальную составляющую) и будем перемещать точки по
> поверхности сферы в этом направлении, учитывая модуль вычисленного
> вектора. После каждого перемещения пересчитываем равнодействующую. Когда
> модуль наибольшего вектора становится достаточно мал, то есть достигнута
> требуемая точность, прекращаем вычисления.

Это один из вариантов. Какой выбрать, кстати, зависит от понимания
равномерности. Ещё можно сдвигать по направлению от ближайшей, можно
считать отталкивание по расстояниям насквозь через шар или по угловым,
причём в каждом случае выбирать степень. А также можно для ускорения не
отталкиваться от точек из другой полусферы. Выбор велик, я постарался
его сразу не обрезать.
Posted via RSDN NNTP Server 2.0 beta
Re[2]: Построение шара из произвольного кол-ва вершин
От: vvs86 Великобритания  
Дата: 08.07.05 22:07
Оценка:
Здравствуйте, raskin, Вы писали:

R>vvs86 wrote:

>> Собственно именно такая задача. Надо построить шар из неопределённого
>> кол-ва вершин равномерно распределённых по его поверхности. Пока делаю
>> так: изначально есть пирамида имеющая основой треугольник — 4 вершины.
>> Все добавочные вершины распределяются путём созданя дополнительных
>> вершин на векторах от центра шара и сквозь центр треугольника, если
>> вершин много эта операция рекурсивно повторяется для меньших
>> треуголников. Проблема в том что при таком подходе вершины
>> распределяются неравномерно, к примеру при 8 вершинах должен быть куб...
>> Я тут немного поломал себе голову над этим делом а потом решил что
>> скорее всего изобретаю велосепед.

R>Если это делается один раз при создании шара, то можно создать случайные

R>точки в кубе, проецировать их на сферу, что даст равномерное
R>распределение в среднем. После чего имитировать отталкивание: каждая
R>точка смещается в направлении от большинства близких. За некоторое
R>количество шагов получится достаточно равномерное распределение.

Спасибо, попробую
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.