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

Масштабировать по двум точкам

Тема в разделе "Maya", создана пользователем Анатолий Масленников, 8 июл 2008.

Модераторы: Dark™, Skif
  1. Анатолий Масленников

    Анатолий Масленников Пользователь сайта

    С нами с:
    23.12.2005
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    2
    Здравствуйте, я хотел узнать возможно ли в Maya масштабировать объект по двум точкам, задав его опорную точку и вторую где масштабирование должно остановиться?
     
  2. DemX86

    DemX86 Знаток

    С нами с:
    04.09.2006
    Сообщения:
    615
    Симпатии:
    4
    Баллы:
    22
    Можно со скриптом. Что-нибудь в таком стиле:
    > опорная точка объекта -- это и есть pivot point объекта;
    > вторая точка, где масштабирование должно остановиться -- скажем, локатор;
    > далее в цикле начинаем дискретно увеличивать (или уменьшать) scale объекта, пока все три значения X, Y, Z любой координаты Bounding Box'a объекта не превысят таковые координаты у локатора в глобальной системе координат. Это в случае увеличения масштаба объекта. Или может там понадобятся более изощренные проверки равенства коориднат BB'a объекта и локатора.
    Я так думаю.
     
  3. Миша Ершов

    Миша Ершов Мастер

    С нами с:
    02.11.2003
    Сообщения:
    1.415
    Симпатии:
    2
    Баллы:
    325
    Угу, ответ: можно, но сложно :)
     
  4. Артём Ягодин

    Артём Ягодин Активный участник

    С нами с:
    17.10.2006
    Сообщения:
    191
    Симпатии:
    0
    Баллы:
    11
    Анатолий, оаишите ситуацию конкретней.
    В общем случае можно просто установить Limit на масштабы по осям.
     
  5. Анатолий Масленников

    Анатолий Масленников Пользователь сайта

    С нами с:
    23.12.2005
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    2
    Дело в том что мне необходимо подогнать одну модель под размеры другой, я делал это только "на глаз", а как точно можно не смог придумать. Модели сами по себе разные но нужно чтобы у них ширина и длина совпадали.
     
  6. tadpole

    tadpole Знаток

    С нами с:
    12.08.2005
    Сообщения:
    712
    Симпатии:
    1
    Баллы:
    24
    а линейка для чего?
     
  7. tadpole

    tadpole Знаток

    С нами с:
    12.08.2005
    Сообщения:
    712
    Симпатии:
    1
    Баллы:
    24
    а еще можно кубом мерять...;)
     
  8. Анатолий Масленников

    Анатолий Масленников Пользователь сайта

    С нами с:
    23.12.2005
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    2
    Линейкой и кубом я и сам мерить умею, только вотмодель при этом не масштабируешь до нужной длины и ширины, так как в масштабе ставиться сам масштаб, а не требуемая длина и ширина, и модель сложная так что ее не растянешь выделив точки.
     
  9. Артём Ягодин

    Артём Ягодин Активный участник

    С нами с:
    17.10.2006
    Сообщения:
    191
    Симпатии:
    0
    Баллы:
    11
    float $bbox1[] = `exactWorldBoundingBox object1`;
    print("Bounding box ranges from: " +
    $bbox1[0] + "," + $bbox1[1] + "," + $bbox1[2] + ", to " +
    $bbox1[3] + "," + $bbox1[4] + "," + $bbox1[5] + ".\n");

    float $bbox2[] = `exactWorldBoundingBox object2`;
    print("Bounding box ranges from: " +
    $bbox2[0] + "," + $bbox2[1] + "," + $bbox2[2] + ", to " +
    $bbox2[3] + "," + $bbox2[4] + "," + $bbox2[5] + ".\n");

    $scaleX = abs($bbox1[3] - $bbox1[0])/abs($bbox2[3] - $bbox2[0]);
    $scaleY = abs($bbox1[4] - $bbox1[1])/abs($bbox2[4] - $bbox2[1]);
    $scaleZ = abs($bbox1[5] - $bbox1[2])/abs($bbox2[5] - $bbox2[2]);

    три последних значения и будут показатели масштаба по каждой оси, для точного "подгона" модели 2 к 1. Просто скопируйте их из скрипт едитора и вставьте в соответствующие каналы второй модели.
     
Модераторы: Dark™, Skif

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