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  След.

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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