Основные определения
Пройдемся по основным принципам, которые лежат в основе алгебры интервалов.
Во-первых, что такое интервал. Судя по термину, - это нечто, что находится между (inter) неких величин (values). Пока не очень понятно, о чем речь, но вообще данное определение вполне себе удачно. Бывают хуже.

Values - это границы интервала. Есть левая граница (начало) и есть правая (конец). Границы - это точки на шкале (оси, пространстве).
Шкала - здесь это одномерное пространство, которое имеет направление. Направление означает, что элементы данного пространства могут быть упорядочены. Именно упорядоченность дает возможность определения оператора "между".
Шкала может быть непрерывной (как время):

Может быть дискретной. Например, алфавит: ['а' ,'б', 'в', 'г', ... , 'ю' , 'я']
Интервалы и границы - не одно и то же!
Второе и, пожалуй, главное, что следует уяснить. Интервал и точки - это два разных типа данных.
В чем отличие интервала от точки? В размере, - у интервала есть конечный размер, у точки нет. Точка - это предельная сущность. При этом точка может принадлежать интервалу (находиться внутри), а может и не принадлежать. Например, точка принадлежит числовому интервалу [3, 4]. И даже может быть границей другого интервала, но сама интервалом не является.
Поэтому (внимание!) - вопрос о том, принадлежат ли интервалу его границы - не имеет особого смысла. Я бы давал на такой вопрос ответ Неопределено, - можно считать, что принадлежит, а можно и нет.
Тут может возникнуть законный вопрос. А как же тогда быть со всеми этими "включительно" или "исключительно", которые используются при задании интервалов? Вот, например, интервал "со 2-го по 5-е" включает 5-е число. А интервал "со 2-го до 5-го" - не включает. Вроде как очевидно, что надо указывать - входят границы в интервал или нет.
Ответ тут такой. Зачастую интервал задается не явными границами (точками), а границами других интервалов меньшего размера. И в приведенном выше примере числа 2 и 5 - это не точки, а интервалы. Соответственно, у них есть границы. Первый интервал [2, 5] задан как "от левой границы 2 до правой границы 5", а второй [2, [5 - "от левой границы 2 до левой границы 5".

Как отличить, является ли некая сущность интервалом или точкой? По вкладу в общую меру (длину) интервала. Дает вклад - интервал. Нет - точка.
Элементы алфавита [а, б, в, г, д, ...] - это интервалы. Потому что каждая буква дает вклад в длину интервала. Например, длина (в буквах) интервала [б, д] равна 4 - суммарная длина всех смежных интервалов. А что же тогда является точками алфавита? Границы его букв. Левая граница буквы 'б' - это точка '[б'. Правая граница буквы 'в' - это точка 'в]'.
На всякий случай уточним, что числа - не всегда интервалы. Могут быть и числовые границы (числа-точки). Примерно так:

Добавили указание точности чисел в виде бесконечно повторяющегося нуля. Так подробно останавливаемся на отличии точек от интервалов, потому что это источник путаницы - как именно задан интервал.
Еще для закрепления. Само множество границ может являться шкалой (поскольку поддается упорядочиванию). В этом случае уже граница (как элемент) является интервалом, а точками такой шкалы будут границы между границами. Но слава богу нам сюда не надо.
Отметим, что языки программирования не очень хорошо ладят с проблемой отцов и детей отличия интервалов от точек. Типичный проблемный вопрос - является ли литерал времени "23.59.59" концом дня или нет? Равен ли он началу дня "00.00.00"?
Смежные интервалы, типы границ
Как уже отмечалось, смежными называют интервалы, имеющие общую границу.

Но из-за того, что границы большого интервала задают как границы малых возникает проблема идентификации. Человеку понятно, что конец сегодняшнего дня совпадает с началом завтрашнего, но программе это объяснить сложнее. Обычно программы умеют определять эквивалентность, но не смежность. На практике это означает, что все типы границ, заданные как границы неких стандартных (базовых) интервалов, должны быть приведены к одному типу - либо все левые, либо все правые. Это дает возможность программе сворачивать границы в алгебраических выражениях. Примерно так:
[2, 5] + [6, 10] == [2, [6 + [6, [11 == [2 - [6 + [6 - [11 = [2 - [11 == [2, [11
Фактически в данном примере мы использовали векторную алгебру для операций над границами.
Линейные комбинации границ
Основой алгебры границ является представление границ интервала (отрезка) как разности его левой и правой границы. Назовем это граничным представлением интервала.
Пусть левой границей интервала s является [s, а правой s]. Тогда граничным представлением интервала будет выражение:
Здесь '-' - это минус, а не тире.

В общем случае по паре точеки
можно построить границу интервала:
В формуле вывели явным образом значение скалярных коэффициентов (1 и -1) перед границами. Данные коэффициенты можно трактовать как координаты [1, -1] в упорядоченном базисе из элементов. Далее мы везде используем первые латинские буквы
для обозначения границ (не стоит путать их со скалярными коэффициентами - числами).
Вообще выражение, которое представляет собой разность элементов, можно трактовать как аффинный вектор. Особенность аффинных векторов в том, что сумма коэффициентов их линейной комбинации равна нулю. Такие комбинации иногда называют балансовыми. А какие еще бывают? Бывают, например, - барицентрические, - это когда сумма коэффициентов равна 1, - такие комбинации соответствуют точкам (элементам) пространства.
Итак, границы интервала (отрезка) можно трактовать как аффинный вектор (при условии что интервал замкнут, то есть у него есть начало и конец), заданный на множестве границ. Это в свою очередь означает, что все операции над границами интервалов имеют свои аналоги в аффинном пространстве, и наоборот - свойства аффинных векторов применимы к интервалам.
Граничное представление
Границы интервала (как и аффинный вектор) могут состоять не из двух точек, а из произвольного их количества. Лишь бы кратность комбинации оставалась нулевой. Ну например, возможна такая комбинация (интервал):
Есть и отличие интервалов от векторов. Интервал определен на упорядоченной шкале, а аффинный вектор направленности пространства не требует. Упорядоченность позволяет отразить на шкале граничное представление интервала как всплески коэффициентов у его границ:

Отметим также, что для операций сложения/вычитания (и даже умножения, о котором ниже) векторов метрика (шкалы) не требуется. То есть не надо знать длины интервалов (расстояния между границами) для того, чтобы их складывать, объединять и пересекать. Достаточно знать их порядок (уметь сортировать).
В программном коде граничное представление можно реализовать как табличку с двумя колонками. В одной (ключевой) - границы (точки), в другой - их коэффициенты (амплитуды). Операция свертки - суммирует амплитуды по одной и той же границе. Хотя можно сразу предусмотреть колонку и для высот (накопительных амплитуд), - пригодятся при расчете пересечений.
Линейные формы
С одной задачей (сложения интервалов и слияния границ смежных интервалов) разобрались. Но было бы ошибкой сделать вывод, что граничное представление - это и есть каноническое представление множества интервалов. Как уже отмечали выше, интервалы - это независимая сущность. В базе данных, например, мы можем привязывать к интервалам-отрезкам определенные свойства, значения которых будут разными для разных интервалов. Граничное представление такой возможности не дает (тут можно делать всякие оговорки, но не хотим застревать).
Комбинация границ оставляет неопределенным ответ на вопрос, а какие именно интервалы-отрезки тут заданы? Это могут быть два отрезка
и
. А могут быть отрезки
и
.
Вышесказанное означает, что самому интервалу (а не его границам) должна соответствовать иная алгебраическая сущность (не векторная), из которой можно получить его граничное представление. И конечно, такая сущность есть (поскольку мы тут не первые возимся с линейными пространствами). Называется билинейной формой. Про них я уже писал на хабре, - здесь кратко повторю основные свойства.
Билинейные формы можно трактовать как некое умножение произвольных элементов пространства или способ записи их связывания в пару (аргументы формы):
Мы используем для простоты записи круглые скобки, хотя это не всегда удобно. Но с выбором типа скобок в алгебре всегда проблемы, - сущностей много, а скобок мало.
Главное свойство билинейной формы - по каждому аргументу форма сохраняет правила линейности:
Что тут видим. Слева - форма, аргументы которой являются линейными комбинациями каких-то элементов. Справа - линейная комбинация самих форм. То есть формы тоже могут образовывать линейные комбинации. Коэффициенты данных комбинаций можно записать в виде матрицы (поскольку в форме - два аргумента). Для нашего примера матрица коэффициентов будет такой:
Если оба аргумента формы совпадают, то форма называется квадратичной:
Есть выделенные линейные комбинации. Например, симметричная форма
называется полярной (или поляром). Иногда (а, может, и чаще) используют нормированный вариант поляра - делят его на 2. Такую форму обозначим для простоты знаком произведения:
Отметим, что если аргументы совпадают, то нормированный поляр становится квадратичной формой:
Это были краткие и скучные сведения про формы, пора применить их к интервалам.
Интервал - это квадратичная форма вектора
Постулируем, что интервалу-отрезку соответствует квадратичная форма вектора, образованная его границами. Для границформа отрезка будет такой:
Почему именно так? Можно привести пару соображений. Во-первых, именно такая же форма используется для связей в симметричном графе. Связь связывает две вершины, а интервал - две границы. Во-вторых, свойства данной формы позволяют удобным образом вычислять параметры интервала. В частности, находить пересечение двух интервалов.
Граничное представление интервала строится применением направленного граничного операторак форме интервала:
Направленный граничный оператор определен только на направленной шкале (оси). Мы из меньшей границы вычитаем большую. Этим данный оператор отличается от граничного оператора на симплексах (про который мы рассказывали в статье про внешнюю алгебру).
Таким образом, форма самого интервала- симметрична (не имеет направленности), поскольку квадратична. Форма его границ
- ориентирована. Переход от формы к границам выполняется граничным оператором - эквивалент операции дифференцирования.
Отрицательным интервалам соответствует отрицательная форма. Для границ интервалаформа будет такой:
Этим примером мы хотели показать, что для произвольного граничного представления его форма
необязательно совпадет с
.
В программном коде линейная комбинация интервалов-отрезков реализуется как таблица с двумя ключевыми колонками, в которых указаны границы интервала. В остальных колонках таблицы могут быть указаны свойства на данном интервале, в том числе - скалярный коэффициент данной формы (интервала).
Полярная форма интервала
Допустим, есть два аффинных вектора (или что то же самое - два граничных представления интервала): и
. На заданном множестве границ
данные векторы можно представить как:
где- амплитуды (координаты) данных векторов. По повторяющемуся (немому) индексу
выполняется суммирование. Напомним, что сумма амплитуд - нулевая:
.
Для полярной формы данных векторов есть полезное тождество, которое разлагает поляр по квадратичным формам векторов базиса. Векторы базиса - это все комбинации, которые можно получить на множестве границ
. Тождество разложения:
где коэффициенты образуют симметричную матрицу:
Например, для 4-х вершинвекторы будут такими:
а полярное тождество таким:
Доказательство мы тут не приводим, - оно несложное. Достаточно раскрыть формы и использовать нулевой баланс амплитуд.
Отметим, что полярное тождество никак не связано с направленностью оси - оно действительно для любого пространства. Вообще оно задает форму скалярного произведения векторов, но в интервальной трактовке эта форма соответствует пересечению интервалов. Покажем это.
Пересечение интервалов
Применим к полученной выше полярной форме границ двух интервалов направленный граничный оператор. Это сделать достаточно просто, поскольку мы знаем, что
при условии, что
. Поэтому результатом взятия границы будет такое выражение:
Основное его отличие от предыдущего в том (помимо того, что вместо формы здесь векторы), что здесь матрица коэффициентовявляется антисимметричной:
. Понятно почему - при перестановке границ вектор
меняет знак на противоположный.
Полученное выражение справедливо только для направленных пространств, поскольку при его получении используется сравнение границ.
Далее надо от матрицыперейти к амплитудам самого интервала пересечения. То есть нам нужна граница интервала пересечения в виде
. Для получения амплитуд
достаточно просуммировать матрицу
по строкам (или столбцам).
Но предварительно введем еще одно понятие, которое все равно всплывает рано или поздно при работе с границами интервала. А именно - наряду с амплитудой границы введем ее высоту. Возможно несколько определений высоты, - мы используем наиболее простой: высота границы вычисляется как суммирование всех амплитуд всех предыдущих границ, включая данную. Высоту вектораобозначаем как
:
Тут суммирование направленное - от первой границы до текущей.
Теперь можно выполнить суммирование матрицыс учетом баланса амплитуд. Получим итоговое выражение амплитуд границ пересечения:
Данная формула позволяет рассчитать границы интервала пересечения (амплитудына базовом множестве границ) на основании амплитуд и высот исходных интервалов. От корректировочного слагаемого
можно избавиться, выбрав другое определение высоты (учитывать амплитуду текущей границы с коэффициентом 1/2), но это уже нюансы.
Пример
Пусть на шкале есть 6 упорядоченных точек-границ: и заданы два интервала:
.
Определим область их пересечения согласно приведенной выше формуле.
Для начала приведем амплитуды к общему базису всех границ, - получим координаты. Далее по координатам амплитуд рассчитаем высоты:
Далее считаем амплитуды области пересечения, начиная с первой границы:
И т.д. В итоге получим, что в векторной форме означает:
, что и ожидалось.
Особенности и ограничения
Следует иметь в виду, что определение пересечения интервалов через симметричную форму (произведение) имеет свои особенности.
Как известно, минус на минус - дает плюс. Это означает, что расчет пересечения отрицательного интервала с самим собой даст не отрицательный интервал (как можно ожидать от операции пересечения), а положительный (это мы уже отмечали выше). Поэтому если в исходных множествах интервалов встречаются области отрицательной высоты, то это может дать неожиданный результат.
Например, граница пересечения интервалас самим собой согласно формулам выше будет такой:
. Это выглядит странно, но объяснимо. Дело в том, что исходные границы фактически представляют собой разность двух интервалов:
. Между собой данные интервалы не пересекаются
, но вот при пересечении с самим собой отрицательный интервал
превращается в положительный
. Ну и при сложении с
получаем результат
.
Другой момент касается трактовки кратности амплитуд. Если рассчитать пересечение с собой интервала с удвоенными амплитудами, то получим результат как
. Это связано с тем, что кратность амплитуд трактуется не как высота интервала, а как их количество. Фактически форма
означает, что у нас слева два интервала и справа - два. Всего областей пересечений будет 2*2 = 4.
Можно выделить интервалы, у которых граница от квадратичной формы совпадает с границей исходного интервала, в особый класс. В частности данному классу принадлежат обычные положительные интервалы в виде отрезка. Для всех таких интервалов согласно тождеству имеет место инвариант, связывающий амплитуды
и высоты
:
откуда следует, что либо амплитуда границы равна нулю, либо ее высота связана с амплитудой как
.
Как правило в прикладных задачах при расчете пересечений интервалы имеют положительную высоту и единичную кратность. Так что можете смело использовать приведенные выше соотношения.
На этом пора закругляться. Надеюсь, смог кое-что прояснить в данном вопросе.
Комментарии (29)
wataru
26.06.2025 10:29Границы интервала (как и аффинный вектор
Здравствуйте, а не могли бы вы объяснить, что такое "аффинный вектор"? Гугл не находит определения для этого понятия.
dmagin Автор
26.06.2025 10:29perplexity.ai - "что такое аффинный вектор?"
wataru
26.06.2025 10:29Спасибо. А есть ссылка на что-нибудь более осязаемое? Вроде википедии, например? Потому что LLM чат боты нагенерируют определение чего угодно.
Мне этот чатбот скопировал определение свободного вектора из векторного пространства, ассоциированного с афинным пространством из википедии.
Это совпадает с вашим определением?
Jijiki
26.06.2025 10:29для того чтобы это понять надо открыть блендер, загрузить анимацию, вывести в консоль какую-нибудь матрицу и сопоставить её с тем пространством какое в шейдере(грубо говоря), тоесть из той матрицы надо получить кватернион поворота например и прочее, так как если мы оперируем векторным пространством и пользуемся кватернионами, при попадании такой матрицы будут искажения, интервальная математика так же связана с движением из точки а в точку б, поэтому анимации могут помоч изучить эти нюансы
в афинном представлении матрица будет определенного вида c нулями внизу грубо говоря, в векторном пространстве будет внизу Tx Ty Tz 1(мне сейчас почему-то так кажется, может я ошибаюсь) (тут еще нюансы потомучто тогда надо смотреть конкретно библиотеки)
gltf-animation.html автор тут покажет свои взгляды на эти моменты
вот пришли к тому из чего ушли, и как вы видите(какие тут матрицы они слегка не те какие нужны) нам нужен кватернион для ускорения и матрица 4х4 всё это и будет тем пространством какое нужно, а то какое у анимации оно другое, и надо будет делать перегонку из анимационного файла в представление всех ситуаций чтобы закомпозить верную матрицу
wataru
26.06.2025 10:29Эмм.. Вы вот это вот все написали только потому что заметили известное слово "афинный"? Вот как вообще у вас в голове цепочка от вопроса о формальном определении математического объекта выстроилась до матриц?
А ссылку на википедию между прочим уже есть и в моем комментарии, зачем вы ее мне дали?
Еще, там в комментарии есть слово "вектор", не хотите про векторизацию очередной пассаж написать?
Jijiki
26.06.2025 10:29почитайте те ресурсы какие я указал там всё изложено про афинное пространство и преобразования и прогонку в векторное тоесть в шейдер, а так же чуть побольше написано (тоесть тот автор описал всю ситуацию) и даже упомянул Homogeneous_coordinates, если вам надо чуть побольше информации то тут поможет только опыт и кругозор, потомучто пространств в конктексте афинно-векторного контекста будет чуть-чуть побольше(ведь это будет на мониторе в окне "рисоваться" например) и все они будут с векторами
Jijiki
26.06.2025 10:29Скрытый текст
вот типо как я понял это аффинная матрица
поидее её компоненты это аффинные вектора, наверно логическиwataru
26.06.2025 10:29поидее её компоненты это аффинные вектора, наверно логически
Очень наивная логика. И не верная точно. Аффинность - это свойство всей целиком матрицы. Один и тот же вектор может быть в одной матрице и она будет аффинной, и может быть в другой матрице и она не будет аффинной.
Аналогия тут: cторона равнобедренного треугольника не является равнобедренной.
Jijiki
26.06.2025 10:29если бы вы спросили у ИИ то былоб очевиднее что это именно и есть в контексте афинных преобразований эти вектора - компоненты матрицы, просто вы ждёте каких-то секретов там где их нет, векторное пространство определено точка определена
вы хотите увидеть чтобы в разделе афинного пространства были определения что вектор не вектор или как? или типо доказательство почему тут вектор, а в векторном пространстве тоже вектора ?)
я вам показал подводящие темы(прям конкретно) и именно так с этим можно столкнуться в блендере и в шейдере
wataru
26.06.2025 10:29если бы вы спросили у ИИ то былоб очевиднее что это именно и есть в контексте афинных преобразований эти вектора - компоненты матрицы,
Я спросил у ИИ, и он ничего про аффинные преобразования (и матрицы) не сказал. Сказал про аффинное пространство, да.
вы хотите увидеть чтобы в разделе афинного пространства были определения что вектор
Нет. Я жду что хоть в одной книжке или на хоть одном сайте будет определение вида "аффинный вектор - это ...". Но этого нигде нет. В математике любят определения и любое словосочетание именно так и задается. Потому что иначе математику не сваришь. Когда один автор под аффинным вектором понимает абстрактное понятие свободного вектора, а другой - набор чисел в матрице с определенными свойствами, начинаются проблемы.
Я почти на 100% уверен, что автор тут просто неформально называет свободные вектора аффинными, но все-равно хотел уточнить.
я вам показал подводящие темы(прям конкретно) и
Нет, вы привязались к неправильно использованному слову "аффинный" и выдали что-то, что вы с этим словом знаете, не разбираясь. Давайте дождемся автора, все-таки, и узнаем, что он имел ввиду.
Jijiki
26.06.2025 10:29вы забыли один нюанс вы спросили в контексте афинного пространства и афинных преобразований что такое вектор я дал вам исчерпывающие ответы с примерами.
а что такое вектор то в итоге? раз такая пьянка)
wataru
26.06.2025 10:29Не было никаких аффинных пространств и преобразований. В статье есть отрезки и упоминается некоторый термин. Я спросил, что за термин. То, что тут преобразования додумали вы.
Jijiki
26.06.2025 10:29тогда про контекст афинного пространства и (афинных преобразований - это я добавил) вы ошиблись, и ваш вопрос звучит что такое вектор. это еще интереснее
хорошо тогда что такое векторная величина что такое вектор и какие бывают преобразования между векторами и над векторами(мы их делаем чтобы в последствии записать в векторах матрицы), кстати матрица состоит из векторов и чтобы точка передвинулась из а в б вам будет нужна матрица состоящая из векторов и точка будет в определенный момент преобразования в определенном пространстве это если прям по канону рассматривать
кватернион имеет запись в векторном представлении и его можно по единичной матрице привести к матричному представлению
это уже концепция TRS все они приведут к матричному виду, где вектора это декомпозиция, но не та по которой много методов, а просто декомпозиция из афинного представления в другое(для шейдеров)
поэтому в моём скрине я наивно пологаю что это и есть те самые вектора, потомучто декомпозируя эту матрицу я эту же матрицу приведу к виду который мне нужен будет
тоесть приведу пример я должен получить поворот, должен получить координаты, должен получить масштаб, зная просто как определяется афинная матрица данных преобразований(потомучто и тут можно нагуглить совсем другие моменты декомпозиций)
wataru
26.06.2025 10:29тогда про контекст афинного пространства и (афинных преобразований - это я добавил) вы ошиблись, и ваш вопрос звучит что такое вектор
Нет, мой вопрос - что такое "аффинный вектор". Этот термин использован в статье, вот я и спросил про его определение. Я там в даже цитату из статьи вставил. Это не мои слова, а автора.
хорошо тогда ...
Не надо мне, пожалуйста, больше писать ваше понимание математических терминов, которых вы нахватались с очередного своего увлечения галопом по верхам. Я уже понял, что у вас формального математического образования нет. Что такое вектор я и без вас знаю.
Jijiki
26.06.2025 10:29ну тоесть вектор не принадлежит физически и математически матрице да?
тоесть не относителен матрице и не участвует в матрице
тоесть определены методы, из которых следует где они участники разве нет?
спасибо за ваше мнение. вижу глубокие академические навыки в ваших высказываниях, извините что обьяснил вам как определить где в афинных преобразованиях вектор
wataru
26.06.2025 10:29Повторюсь: словосочетание "аффинный вектор" нигде кроме как в комментариях и статьи этого автора в интернете практически не встречаются. Единственное другое вхождение - это какой-то математический форум, где кто-то спрашивает, а что это вообще такое. Если бы это была очевидная вещь, то где-нибудь определение-то было бы написано.
Далее, матрица - не физический объект, так что вектор ей физически принадлежать не может.
Jijiki
26.06.2025 10:29вектор относительно матрицы, вектор участвует в записи матрицы, есть свойства пространства, а есть свойства обьекта в виде матрицы, любое движение будет комплексом куда будет входить вектор, где тут физика а где математика если работает это воедино например для определения относительности двух обьектов у обоих вектора в свойствах например(это не научно наверно, но если представить свойствами-преобразования, да и некоторые свойства представлены тоже матрицами в состав которых вектора входят, например матрица света, свет имеет матрицу и он относителен матрицы точки или меша, взяли от меша инверсную матрицу и получили свет на меше)
Скрытый текст
ну афинный это отвечает на вопрос какой(вектор какой - афинный, тоесть автор мог подчеркнуть где посмотреть), значит это имелось ввиду наверно вектор, который можно посмотреть в афинном представлении матрицы, обычно у обьектов есть преобразования такие как передвинуться, покрутиться, отмасштабироваться и эти матрицы представлены векторами
Jijiki
26.06.2025 10:29а почему вы так считаете вы не пояснили
мой тейк матрица афинная, преобразования определены, значит вектор просто участник афинных преобразований, вектор так и будет вектором если его назвать афинным вектором это не будет ошибкой я думаю )
в равнобедренном треугольнике вы привели пример с плюсом все стороны равны)
просто треугольник может быть в другом пространстве и там могут быть другие пространственные парадоксы, например искажение геометрии в ютубе есть демка
вообще конечно афинный вектор это простой вектор всё тот же, просто в афинных матрицах нет перспективы)(в афинных преобразованиях на ресурсе вики только главные преобразования представлены, там нет проекции и матрицы вида) этот ответ если есть понимание view projection model просто не стоит обсуждения на самом деле, но новичка собьёт с толку это наверно
вообще без базового понимания 3д сложно поддерживать уровень чтобы все понимали, есть пайплайн, в науке, конечно я понимаю всё названо и изучено, но если вы не понимаете отличие матриц, view projection и model и как к ним приходят то там можно только задавать вопросы и не понять
wataru
26.06.2025 10:29мой тейк матрица афинная, преобразования определены, значит вектор просто участник афинных преобразований
Аффинные преобразования (то, что вы воспринимаете как матрицы) и аффинные пространства (то, откуда берутся вектора) - это не связанные вещи. Как комплексные числа и комплексные обеды. Некоторые слова совпадают, но суть вообще не близкая.
вообще без базового понимания 3д
3д тут вообще ни при чем, это вы его сюда притащили. Напоминаю, разговор об алгебре отрезков, это какая-то математика. Это как в обсуждении числа пи вываливать характеристики каких-то дивгателей внутреннего сгорания, потому что они в машинах, а у них колеса - круглые.
Jijiki
26.06.2025 10:29нет (мне кажется) автор сделал уточнение точка без учета перспективы, точка будет в перспективе после
projectrion * view * model * vector4(curVertex) ^ ^ ^ ^ ^ - там внутри вектор/вектора
в научной нотации обычно пишут малое а или малое т.
так предположу диапазон интервалов значений же например (площадь это будет диапазон значений высот на террейне, потом другой пример диапазон выбранных полигонов по нормалям могут быть отрицательные или положительные) получается до применения pv нет перспективы есть просто счет нормали например, потом происходит перемножение и активировался свет напримерСкрытый текст
банальным примером афинной координаты может быть наверно просто чек центроида куба, тоесть у куба есть вершины которые участвуют в преобразовании для визуализации, а есть центр куба который никуда не отправляется просто симулирует его центр, но для дебага его иногда можно визуализировать это не перестаёт его считать центроидом
Jijiki
26.06.2025 10:29если без центроида глянуть на ААББ там будет тоже самое просто координаты - типо симуляция
Скрытый текст
поэтому очевидное не заметно и может быть подороже в расчете
0pauc0
26.06.2025 10:29... если в исходных множествах интервалов встречаются области отрицательной высоты, то это может дать неожиданный результат
Отрицательный (или развернутый) интервал это нонсенс в "обычных" пространствах, их не может быть по определению, а могут появиться только по ошибке - есть простейшие алгоритмы проверки. Такие интервалы либо исключаются из расчетов, либо расчет не осуществляется.
Развернутые интервалы, как особые ограниченные пространства, могут существовать в неевклидовых или римановских пространствах, но для них и расчеты на других принципах.
Было бы совсем неплохо дополнить изложенную математику показателем точности (приближенности) пересечения, ибо если от абстракции перейти к реальности (ну например к временнЫм шкалам), то без задания точности еще ниже, чем погрешность фиксации временнЫх точек, математика выдаст кашу.
Jijiki
26.06.2025 10:29ну например отрицательные интервалы(тоесть вершины метрические и рассматриваем какую-то площадь(диапазон отрицательных интервалов наверно) поверхности которая ушла в минус - притоплена и там пускаем шейдер воды по высоте 0 например, тогда для ныряния мы будем работать с отрицательными интервалами вроде, например если под водой смешать с цветом и притемнить чутка или прибледнить) высот террейна разве нет? в отрицательной четверти где всё отрицательное, хотя это можно смотреть и положительно просто вершины будут отрициательными на этом диапазоне площади
wataru
26.06.2025 10:29Пока не очень понятно, о чем речь, но вообще данное определение вполне себе удачно.
Определение есть на википедии (правда, строгий термин - промежуток)
Интервал - это множество точек числовой прямой, выпуклое (любая точка между двумя другими в этом множестве лежит в нем). Обобщение на любые шкалы элементарно: это множество элементов из упорядоченного множества (шкала), т.ч. если a,b принадлежат интервалу, то ему принадлежат все x: a <= x <= b.
Интервалы и границы - не одно и то же!
Интервалы могут быть замкнутыми или открытыми. Если вспомнить об этом, то никаких проблем с границами не будет. Открытые не содержат свои границы, замкнутые - содержат.
А дальше, интервалы и границы никак не спутать. Первое - это (под)множество элементов шкалы, а второе - один конкретный элемент. x и {x} - разные категории объектов. Однако, интервалы длины 0 из одного объекта вполне могут быть, правда, только закрытые.
Граничное представление
Это работает как чисто формальная запись, где на смом деле нет никакой бинарной операции суммирования точек. Да, это легче записать, чем рисовать шкалу с отрезками на бумаге. Практического применения этой форме, кроме иллюстраций и механистического объединения касающихся интервалов я не вижу.
Главная проблема, на мой взгляд, что вы везде называете разность аффинным вектором (имея ввиду свободный вектор), но тогда [a - (a+1)] и [b - (b+1)] у вас получатся одним и тем же вектором одной и той же длины 1 и направленым вправо. Потому что свободные вектора же не имеют конкретного начала, только направление и длину.
Соотвественно, если вы начнете работать не с формальными обозначениями, а начнете какие-нибудь числа подаставлять, то у вас в итоге получится просто вектор длины.
Для границ
форма отрезка будет такой:
Опять же, вот есть у вас отрезок [1,2] и его форма (2-1)*(2-1). Я помню, что это не арифметические операции, а векторные. Но вот проблема выше осталась, для отрезка [3,4] 4-3 будет точно тем же аффинным вектором. Поэтому его биллинейная форма (4-3)*(4-3) будет точно тем же элементом из множества бивекторов.
В программном коде линейная комбинация интервалов-отрезков реализуется как таблица с двумя ключевыми колонками, в которых указаны границы интервала.
Это логично, но это же не исходит из вашей алгебры?
А дальше я заметил, что вы работаете с границами, как будто они все являются независимыми базисами в вашем векторном пространстве. Вот у вас даже в примере вектора имеют по 6 координат. Действительно, если 1,2,3 - базисные вектора, то [2-1] и [3-2] - это разные вещи, и проблема о которой я выше говорил решена. И ваши линейные комбинации тоже обретают смысл. Это просто коэффициенты в базисном разложении какого-то вектора.
Но по ходу статьи это вообще непонятно. И из ваших комментариев раньше это тоже было непонятно.
И тогда у вас потенциально бесконечно мерное линейное пространство, хотя можно расмотреть подспространство образованное только границами которые у вас есть в задаче. И фактически ваши представления эквивалентны индикаторной функции. Вот ваши амплитуды - это и есть индикаторная функция - 1 стоит там, где элемент принадлежит интервалу, 0 иначе. g - это результат разностного оператора от h. Ваша формула в статье очень интересна и позволяет подсчитать g для произведения двух h без вычисления собственно произведения и выполнения разностного оператора. Хотя в програмном коде легче будет подсчитать h = h(a)*h(b), а в качестве g взять разность текущего значения и предыдущего в каждом элементе. Тут только одно умножение и одно вычитание. Но тут будет зависимость от предыдущего значения, так что ваш вариант может быть быстрее на практике.
Возвращаясь к вашему язвительному комментарию из прошлой статьи:
Если a и b - это точки, то как их разность может быть числом? Это просто разность элементов - аффинный вектор
Вот если бы вы сразу сказли, что a и b - это никакие не точки, а базисные вектора, все было бы понятно сразу же.
Jijiki
26.06.2025 10:29начнем с того что вектор это абстракция операции над векторами - это операции над точками, сделайте визуализацию в 3д так будет проще понять
OlegZH
Да! Хочется разобраться.