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

В максе замечены ошибки...

Тема в разделе "Общие вопросы", создана пользователем -, 20 май 2002.

Модераторы: Артер
  1. Guest

    Доброе время!

    При написании очередного плагина к максу (макс SDK) обнаружилась такая неприятная ошибочка:

    Если имеются две матрицы преобразования пространства ТМ1 и ТМ2 и мы хотим получить их разность (состояние ТМ1 относительно ТМ2) мы делаем следующее:

    ТМ = ТМ1 * Inverse(ТМ2);

    Однако результ получается ошибочным. Т.е. перенос ТМ (translation = ТМ->GetTrans()) не равен разности переносов этих двух матриц

    translation != translation1 - translation2....

    В чем беда? Может кто разобрался с этим?
     
  2. Guest

    Если говорить о матрице в чистом виде, то работает. MAXScript есть зеркальное отражение SDK в данном случае

    in MAXScript run

    m1 = matrix3 [1,0,0] [0,1,0] [0,0,1] [-100,-100,-100]
    m2 = matrix3 [1,0,0] [0,1,0] [0,0,1] [100,100,100]
    a=m1.translation - m2.translation

    m_d = m1*(inverse(m2))
    b=m_d.translation

    a==b
    returns true

    проверь может где-то запутался в local-world, or parent-child relations.
     
  3. Guest

    plug, оставь свой мэйл, плиз, есть пару вопросов...
     
  4. Guest

    Все таки ошибки (более точно сказать - погрешности) существуют. Правда при больших углах поворота они превращаются в полную ерунду. Именно в функции Inverse() это и проявляется. Но я обошел эту преграду. Спасибо за отклик
     
  5. Guest

    mail: plug@intech.ru

    ICQ#: 75190013
     
  6. Guest

    PLUG, ты и раньше свой мэйл указал, а вот plug свой мэйл не оставил...
     
Модераторы: Артер

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