2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Как построить математическую модель конструктора?
Сообщение22.08.2019, 18:37 


18/08/19
6
Здравствуйте!
Допустим есть набор типов трехмерных элементов некоторого конструктора, каждый из которых отличается от других формой, а также типом и расположением на его поверхности неких соединительных интерфейсов. Соединительные интерфейсы каждого типа способны соединяться с некоторым небольшим набором типов других соединительных интерфейсов. Таким образом, из этих элементов можно собирать некие конструкции и при этом возможность соединения двух элементов, либо присоединения отдельных элементов к собираемой конструкции, будет определяться типом и расположением соединительных интерфейсов.
Посоветуйте, пожалуйста: каким математическим аппаратом можно описать данный конструктор так, чтобы получилась его математическая модель?
Впрочем, буду благодарен за любую полезную информацию по этой теме, например, какие-нибудь компьютерные программы, которые это делают и т.п.

 Профиль  
                  
 
 Re: Как построить математическую модель конструктора?
Сообщение22.08.2019, 18:47 
Аватара пользователя


29/05/17
806
Alibaba78 в сообщении #1411641 писал(а):
Посоветуйте, пожалуйста: каким математическим аппаратом можно описать данный конструктор так, чтобы получилась его математическая модель?


Если вы хотите визуализировать вашу модель на экране компьютера, то с помощью матричного исчисления.

 Профиль  
                  
 
 Re: Как построить математическую модель конструктора?
Сообщение22.08.2019, 18:55 


18/08/19
6
Mental в сообщении #1411642 писал(а):
Если вы хотите визуализировать вашу модель на экране компьютера, то с помощью матричного исчисления.

Спасибо!
А если не визуализировать, тогда каким способом?

 Профиль  
                  
 
 Re: Как построить математическую модель конструктора?
Сообщение22.08.2019, 19:07 
Аватара пользователя


29/05/17
806
Alibaba78 в сообщении #1411645 писал(а):
А если не визуализировать, тогда каким способом?


Описать можно попробовать с помощью блок-схемы.

 Профиль  
                  
 
 Re: Как построить математическую модель конструктора?
Сообщение22.08.2019, 19:13 


18/08/19
6
Mental в сообщении #1411646 писал(а):
Описать можно попробовать с помощью блок-схемы.

Правильно ли я вас понял, что вы имеете ввиду комбинаторную блок-схему?

 Профиль  
                  
 
 Re: Как построить математическую модель конструктора?
Сообщение22.08.2019, 19:17 
Аватара пользователя


29/05/17
806
Alibaba78 в сообщении #1411649 писал(а):
Правильно ли я вас понял, что вы имеете ввиду комбинаторную блок-схему?


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

 Профиль  
                  
 
 Re: Как построить математическую модель конструктора?
Сообщение22.08.2019, 19:25 


14/01/11
3037
Можно задать граф соединений, каждой вершине которого соответствует элемент, а каждому ребру - соединение двух элементов, при этом в свойствах каждого ребра описать взаимное пространственное положение соответствующих элементов вместе с задействованными интерфейсами.

-- Чт авг 22, 2019 19:30:47 --

Кстати, можете поискать, как это реализовано, скажем, в Kerbal Space Program. Насколько помню, там такие графы ограничиваются деревьями, что имеет свои преимущества и недостатки.

 Профиль  
                  
 
 Re: Как построить математическую модель конструктора?
Сообщение22.08.2019, 19:34 


18/08/19
6
Mental в сообщении #1411651 писал(а):
Я имел ввиду обычную блок-схему, но если вы сможете сделать через комбинаторную, то почему бы и нет.

Понятно, спасибо!

Sender в сообщении #1411654 писал(а):
Можно задать граф соединений, каждой вершине которого соответствует элемент, а каждому ребру - соединение двух элементов, при этом в свойствах каждого ребра описать взаимное пространственное положение соответствующих элементов вместе с задействованными интерфейсами.

Кстати, можете поискать, как это реализовано, скажем, в Kerbal Space Program. Насколько помню, там такие графы ограничиваются деревьями, что имеет свои преимущества и недостатки.

Спасибо!

 Профиль  
                  
 
 Re: Как построить математическую модель конструктора?
Сообщение22.08.2019, 20:52 
Заслуженный участник


27/04/09
28128
Если важна и геометрия (некоторые графы соединений нельзя будет реализовать из-за пересечения элементов, что невозможно будет в реальности без, скажем, отпиливания от них кусков), придётся к вершинам графа добавлять информацию о том, какая у элемента геометрия, в том числе где расположены соединения и как ориентированы, если это бывает. (И применять вычислительную геометрию, чтобы знать, можно ли соединить два элемента.) И с такого полного описания стоило бы начинать, а лишь потом упрощать по надобности. И мне не совсем ясно, в чём была бы проблема — если например вы ищете какую-то волшебную модель, которая сразу даст ответы на все вопросы, когда это заранее без исследования не обязательно.

Пример, чтобы описание не было не-ответом типа «в виде блок-схемы»: пусть есть кубики, в центрах граней которых есть углубления или выступы одинаковой прямоугольной формы (и стороны этих прямоугольников параллельны рёбрам кубиков). Тут всё довольно просто — собранная конструкция всегда будет укладываться в кубическую сетку, потому мы можем сделать описание каждой детали очень простым: для каждой грани кубика описание ориентации углубления/выступа (два варианта) и типа — углубление или выступ, тоже два. Ещё в модели будет функция преобразования кубика при повороте (чтобы мы могли соединять их по-всякому) и функция, говорящая, можно ли соединить два кубика с интересующей стороны.

На картинке иллюстрация как это может быть устроено (и определена функция соединимости), частично:

Изображение


-- Чт авг 22, 2019 22:55:09 --

Да, когда я рисовал, я решил, что лучше описывать не то, выступ на грани или выемка, а то, направлены ли они по соответствующей оси или против. Это позволило написать функцию соединимости очень просто, но вообще можно делать как угодно. Всё равно подобным моделям обычно место в каком-то софте, а там нет проблем со сложными выражениями, так что можно например будет поэкономить код функции вращения детали, а не этой, или что-то ещё.

 Профиль  
                  
 
 Re: Как построить математическую модель конструктора?
Сообщение22.08.2019, 21:14 
Аватара пользователя


29/05/17
806

(Оффтоп)

arseniiv в сообщении #1411670 писал(а):
Да, когда я рисовал

Оси координат у вас очень интересно подписаны.

 Профиль  
                  
 
 Re: Как построить математическую модель конструктора?
Сообщение22.08.2019, 21:19 
Заслуженный участник


27/04/09
28128

(Оффтоп)

Хм, а как их ещё подписать, если хотеть вертикально направленную по смыслу ось назвать $z$ и чтобы система координат была правая (ради гуманности)? А, ну в компьютерной графике направляют $z$ нормально предполагаемой плоскости экрана, но тут трудно представить такой случай, ни одна из невертикальных осей не направлена на/от нас (иначе было бы неудобно изображать кубики и сами оси). :-)

 Профиль  
                  
 
 Re: Как построить математическую модель конструктора?
Сообщение22.08.2019, 21:39 


14/01/11
3037
arseniiv в сообщении #1411670 писал(а):
придётся к вершинам графа добавлять информацию о том, какая у элемента геометрия

Ну я предполагал, что список элементов, включающий их детальные описания, нам известен изначально, так что нет нужды пихать их в граф. Для описания взаимного расположения двух элементов в сущности достаточно шести пространственных координат.

 Профиль  
                  
 
 Re: Как построить математическую модель конструктора?
Сообщение22.08.2019, 22:07 
Заслуженный участник


27/04/09
28128
Я просто не очень уверен, что ТС посчитал тривиальным, а что неподъёмным. Он мог вполне решить, что граф — венец творенья и потом разочароваться на практике, или мог ещё что-то, поди пойми. :-)

 Профиль  
                  
 
 Re: Как построить математическую модель конструктора?
Сообщение22.08.2019, 22:07 


18/08/19
6
arseniiv в сообщении #1411670 писал(а):
Если важна и геометрия (некоторые графы соединений нельзя будет реализовать из-за пересечения элементов, что невозможно будет в реальности без, скажем, отпиливания от них кусков), придётся к вершинам графа добавлять информацию о том, какая у элемента геометрия, в том числе где расположены соединения и как ориентированы, если это бывает. (И применять вычислительную геометрию, чтобы знать, можно ли соединить два элемента.)

Спасибо!
Геометрия важна - она может быть очень разной, но интерфейсы не должны быть закрыты частями самих элементов, чтобы не было помех для соединения с другими элементами конструктора. Так что простые кубики здесь не подойдут, а вот форма интерфейсов не имеет значения - она может быть условной. Расположение интерфейсов может быть любым на поверхности, ориентация - во внешнюю среду, перпендикулярно поверхности.

Sender в сообщении #1411681 писал(а):
Ну я предполагал, что список элементов, включающий их детальные описания, нам известен изначально, так что нет нужды пихать их в граф.

Да, эта информация известна изначально.

 Профиль  
                  
 
 Re: Как построить математическую модель конструктора?
Сообщение22.08.2019, 22:16 
Заслуженный участник


27/04/09
28128
Alibaba78 в сообщении #1411700 писал(а):
Геометрия важна - она может быть очень разной, но интерфейсы не должны быть закрыты частями самих элементов, чтобы не было помех для соединения с другими элементами конструктора. Так что простые кубики здесь не подойдут, а вот форма интерфейсов не имеет значения - она может быть условной.
Да, кубики были для примера, и чтобы понять, что вам уже известно. Ну тогда это выглядит как проблема вычислительной геометрии — сформулировать, доступен ли интерфейс, геометрически, и потом считать для интересующих сборок (геометрия которых получается из геометрий деталей и того как их можно соединять). Ну и как можно соединять, тоже как-то сформулировать, и тут на моих кубиках всё довольно просто и скучно, а для более сложного конструктора надо смотреть, общий совет вряд ли можно дать.

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: vicvolf


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group