Текстурированные сферы без сильного искажения

у вас есть, используя reduce, а затем цикл и объект со всеми суммами:)

function countAtoms(molecule) {
  console.log('Hello World');
  const sums = molecule.reduce((sum, atomKey) => {
    const atom = atomKey.toUpperCase()
    if (!sum[atom]) sum[atom] = 0;
    sum[atom] += 1;
    return sum;
  }, {})

  let finalString = '';

  Object.keys(sums).forEach(sumKey => {
    finalString += sumKey + sums[sumKey];
  })

  return finalString;


}

const result = countAtoms(['NA', 'CA', 'H', 'H', 'NA', 'na']);
console.log(result)

6
задан Cheery 17 October 2008 в 17:52
поделиться

6 ответов

Волосатая теорема шара указывает, что невозможно определить непрерывные координаты текстуры на сфере без любых полюсов, которые искажают структуру.

5
ответ дан 8 December 2019 в 16:13
поделиться

Lat/lon "сферы" искажают по определению. Если Вы в программирование, запустите с [четырехгранник] (Четырехгранник http://en.wikipedia.org/wiki/Tetrahedron) и подразделите столько же по мере необходимости, подразделив каждый треугольник на 4 треугольника и меняя местоположение средних точек в данном радиусе от центра.

Если Вы в моделирование, GeoSphere (как ранее упомянуто), или любой подобный решит Вашу проблему.

Дело в том, что треугольники будут иметь постоянный объем искажения, которое независимо от широты.

Также обратите внимание, что (закрытое) поверхностное подразделение позволит Вам иметь (C) LOD скорее легко.

Текстурирование является другой историей, но после того как у Вас есть хорошая сфера, у Вас есть меньше проблем.

Надеюсь, что это зажигает Ваше воображение :)

3
ответ дан 8 December 2019 в 16:13
поделиться

Можно использовать прямоугольную карту с продольным размыванием, которое увеличивается около полюсов (ни от одного на экватор для высказывания 60 градусов на север). В сочетании со множественными отображениями это должно уничтожить некоторые эффекты, которые Вы упоминаете.

2
ответ дан 8 December 2019 в 16:13
поделиться

Drew Olbrich придумал изящный способ составить мозаику сфера для создания nonahedron. При увеличении числа вершин Вы получите довольно достойную сферическую мозаику.

2
ответ дан 8 December 2019 в 16:13
поделиться

Не разделяйте сферу долготой и широтой. Вместо этого используйте то, что призвано GeoSphere 3Ds Максимум (На самом деле, многогранник, геодезическая сфера.)

1
ответ дан 8 December 2019 в 16:13
поделиться

Или можно использовать cubemap. Это обычно - предпочтительный способ сделать отображение среды, которое является в основном, что Вы описываете.

2
ответ дан 8 December 2019 в 16:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: