Нахождение количества чего-либо между двумя точками в пространстве - PullRequest
0 голосов
/ 11 февраля 2019

В настоящее время я работаю над этой моделью 3D, но я подумал, что начну с 2D.По сути, у меня есть сетка долготы и широты с концентрациями NO2 через нее.То, что я хочу произвести, по крайней мере, сейчас, это общее количество диоксида азота между двумя точками.Примерно так: 2DGrid

По сути, эти две точки находятся в разных латах и ​​долях, и, как я уже говорил, я хочу найти сумму между ними.Хитрость для меня заключается в том, что данные модели, с которыми я работаю, привязаны к сетке, поэтому мне нужно иметь возможность учитывать количество чего-либо вдоль линии в широтах и ​​долях, при которой эта линия прорезает указанную сетку.

Другой подход, и, возможно, лучший для моих целей, может быть визуализирован так: 3DGrid

В конечном счете, я бы хотел создать программу(честно говоря, на любом языке), который может найти количество «чего-то» между двумя точками в трехмерной сетке.Если вам нужны подробности, нижняя высота - это поверхность, верхняя сетка - это верх атмосферы.Нижняя точка - это измерительное устройство, смотрящее на солнце в течение определенного времени суток (и, следовательно, имеющее определенный зенитный и азимутальный угол).Я хочу найти NO2 между этим измерительным прибором и «вершиной атмосферы», которая в моей сетке является просто высшим уровнем высоты (из которых 25).

Я довольно новичок в кодировании,обмен стеками, и даже предмет, с которым я работаю, поэтому разреженный код может создать больше беспорядка, чем просто задать вопрос и посмотреть, какие методы / код вы могли бы предложить?

Надеюсь, мойвопрос выгоден!

Бест, Тейлор

1 Ответ

0 голосов
/ 12 февраля 2019

Чтобы пройти все затронутые клетки, вы можете использовать алгоритм Amanatides-Woo .Подходит как для 2D, так и для 3D корпусов.

enter image description here

Подсказки к реализации

Для учета количества, используемого в каждой ячейке, вы можете применить некоторую модель.Например, рассчитайте длину пути внутри ячейки (как разность координат входа и выхода) и разделите на нормализующий коэффициент, чтобы получить вес ячейки (например, на CellSize*Sqrt(3) для трехмерного случая в качестве длины диагонали).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...