1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

как развернуть симметричный обьект в оси?

Тема в разделе "MAXScript", создана пользователем ASK'R, 26 окт 2010.

Модераторы: Savin Denis
  1. ASK'R

    ASK'R Активный участник

    С нами с:
    18.03.2008
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    5
    обьект - голый меш (сбито всё). известно, что часть обьекта симметрична (элемент), найти плоскость симметрии и повернуть обьект так, чтобы она совпадала с любой из мировых и "поставить" - наибольшее измерение чтобы было по оси Z. читал http://forums.cgsociety.org/archive/index.php/t-412428.html, попробовал обьект линковать к кубику и потом кубик по вращению в нули загонять, отлинковывать и убивать кубик - иногда работает, но только _иногда_.
    хотя бы повернуть в минимальные (или максимальные?) измерения по мировым осям - думаю уже неплохо будет.
    с тем с какой частью модели оперировать сам уже смогу найти.
     
  2. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Автоматически найти плоскость симметрии далеко не тривиальная задача, тем более что решений может быть далеко не одно.
    Легче будет задать ее выделив допустим две симметричных точки.

    Допустим мы вычислили плоскость симметрии,это нам даст только одну ось объекта для
    правильного позиционирования и расчета того-же BBox нужно знать по крайне мере две оси.
    Как ты собираешься задать вторую ось ?

    PS
    В приведенной тобой ссылке строится BBox с осью Z направленной к самой дальней точке от центра
    ось Х же берется от балды т.е. как кросспродукт z и Up, что приведет к не предсказуемому результату.
    Ошибки этого алгоритма можно проверить на параллелепипеде, как не сложно догадаться у такого объекта максимальное расстояние будет меду точками по диагонали, что и будет являться осью Z для bboxa.
    Не думаю что он здесь подойдет.


     
  3. megavitus

    megavitus Пользователь сайта

    С нами с:
    07.06.2006
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    2
    Писал скрипт, для нахождения бокса минимального объёма по выделеному:
    http://3dcenter.ru/forum/index.php?showtopic=64665&st=15
    Его можно пользовать в данном случае.Почти у любого обжа, найдутся опорные подобъекты такие, что построится правильный bbox. Потом линкуем обж к боксу и обнуляем у бокса ротацию.
     
  4. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Да это уже интересно, хотя без ручной коррекции все равно не обойдется
     
  5. ASK'R

    ASK'R Активный участник

    С нами с:
    18.03.2008
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    5
    2Savin Denis
    насчет наличия нескольких плоскостей симметрии в курсе (та же тушка чайника), уже успел проматерится, поис даже голый матаппарат, не то что реализацию на каком либо языке не доет толком ;( спасибо за пояснение происходящего ;)

    2megavitus
    попробую, если что-то непонятно будет, то здесь отпишу
     
  6. Savin Denis vip

    Savin Denis Moderator Команда форума

    С нами с:
    05.05.2005
    Сообщения:
    1.633
    Симпатии:
    0
    Баллы:
    210
    Алгоритм можно придумать если стоит задача именно разработать алгоритм как прикладной так и основанный на мат анализе, но если нужно решать задачу то по опыту быстрей и точней будет просто указать нужные элементы, поскольку на сложных объектах алгоритмы все равно будут давать погрешность. Но тут все зависит от самих объектов и от требуемой точности.
     
  7. ASK'R

    ASK'R Активный участник

    С нами с:
    18.03.2008
    Сообщения:
    94
    Симпатии:
    0
    Баллы:
    5
    2Savin Denis
    сам я сляпывал скрипт, что по нескольким точкам выравнивает, но это оказалось неудобно - много возни, проще вручную развернуть, вариант megavitus'a значительно удобнее

    2megavitus
    отлично! я балдею, буду читать теорию, а скрипт чуть правленный уже применяют. огромное спасибо!
     
Модераторы: Savin Denis

Поделиться этой страницей