Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Вписание сетки в область.

Автор Марбол, апреля 26, 2013, 10:58

0 Пользователи и 1 гость просматривают эту тему.

Марбол

Здравствуйте!

   Недавно я рассказывал о задаче вписания равнозвенной ломаной в участок кривой, при заданном числе звеньев: Вписание ломаной линии в дугу кривой.. Здесь кривая линия является областью на плоскости (x, y), допускающей введение одной криволинейной координаты. Например, этой координатой может быт расстояние вдоль линии, отсчитанное от некоторой фиксированной точки линии. Иначе можно описать линию параметрически: x = f(t), y = g(t) - при параметре t. В этом смысле назовем данное множество однопараметрическим. Соответственно, ломаная, вершины которой лежат на данной линии, - не что иное, как сетка, состоящая из одного ряда последовательных отрезков. В каждом узле этой сетки сходятся 2 отрезка, и через каждый узел проходит только один ряд отрезков. В этом смысле сетку назовем однорядной.
   Скоро у меня возникла естественная идея повышения размерности задачи. Например, поверхность в трехмерном пространстве можно описать с помощью двух криволинейных координат или двух независимых параметров (т. е. это двухпараметрическая область); в поверхность можно "вписать" сетку с четырехугольными ячейками, причем не обязательно, что 4 узла каждой ячейки лежат в одной и той же плоскости. Такая сетка, по принятому, называется двухрядной. Перемещение узлов сетки надо проводить до тех пор, пока длины отрезков в каждом ряду не станут равны друг другу; тогда каждому ряду будет соответствовать свое значение длины отрезка. Конечно, при этом каждый узел должен оставаться на заданной поверхности.
   Смотря шире, область может лежать в M-мерном пространстве и допускать введение N криволинейных координат или N параметров (быть N-параметрической; N <= M), а сетка может состоять из таких рядов отрезков, что в каждой вершине сходятся 2N отрезков (N-рядная сетка). В результате вписания получим, что отрезки, находящиеся в одном ряду, равны друг другу.
   Принцип корректировки узлов остался тем же самым, с той разницей, что в предыдущей теме я использовал явное описание линии в виде y = f(x), вместо параметрического. Но принцип корректировки каждого узла остался тем же.

Как и в прошлый раз, я написал программу на VBA и протестировал, начиная с примитивных примеров (вписание сетки в область на плоскости: квадрат, трапецию, параллелограмм, четырехугольник) и кончая сложными (некоторое условное крыло с выраженными закруткой и стреловидностью).

Марбол

Если появятся вопросы, я подготовлю иллюстрации с подписями.

Марбол

Цитата: Марбол от апреля 26, 2013, 10:58
   Принцип корректировки узлов остался тем же самым, с той разницей, что в предыдущей теме я использовал явное описание линии в виде y = f(x), вместо параметрического.
Очевидно, что многомерную область удобнее, вообще говоря, описывать параметрически:

Xm = Fm(tn),
m = 1, ..., M;
n = 1, ..., N.

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр