Render.ru

MEL: control points rotation

#1
Народ, как используя expressions управлять поворотом группы control vertex-ов нурбс поверхности относительно заданной точки.
Может есть какие функции или мат. формулы.

Cluster deformer не предлагать..

СПАСИБО.
 
#2
Зря ты кластером не хош... Можешь запомнить все вершинки в массив(ls -sl or filterExpand), а потом с помощью команды rotate ili xform вращать его как тебе угодно...
 
#3
а как же разговоры на счет того что мел функции нельзя в выражения вставлять? Мне ведь в выражении нужно.
Условно говоря -- у меня есть группа точек -- напр. vector $points[n].
Есть координата точки, относительно которой нужно вращать эту группу -- vector $pivot. Есть угол поворота по 3-м осям -- vector $angle.

Мне нужно выражение, в результaте которого $points будет содержать уже повернутые точки.

СПАСИБО.
 
#4
мел-команды не нужно вставлять...Без функций в экспрешенах трудно...одними арифметическими операциями много не наваяешь... уж если пытаетесь цитировать, то хоть не перевирайте смысл...

а rot - то тебе чем не подходит?
 
#5
Прошу прощения, но я не смог разобраться с функцией rot.
Как указать rotate pivot? Там тока параметр axis и угол.

Спасибо.
 
#7
Но вообще-то Вы явно идете не той дорогой.... Экспрешены на каждую точку будете писать? Ну-ну...
 
#8
Ой глупость сморозил. Я не виноват. Меня ввели в заблуждение.
Короче вывод значит такой:
Кроме кластера (либо другого деформатора) задуманное осуществить никак нельзя????
 
#9
Можно. Только надо правильно поставить задачу... У меня есть большое подозрение, что между тем, что Вам надо и тем, что Вы пытаетесь сделать - "дистанция огромного масштаба"...

Начнем с того, что точку вращать и масштабировать бессмысленно... у нее и атрибутов таких нет. Точку можно только перемещать
 
#10
F1, вы не внимательны, вопрос я поставил грамотно.
Повторяю в третий раз: как повернуть ГРУППУ точек, имея углы поворота по 3-м осям и точку, относительно которой будем вращать группу (pivot). Используя вырвжение.

Уверяю вас, я знаю, чего хочу добиться, вот только помощи от вас нет никакой, к сожалению, сплошные придирки.
 
#11

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

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

Всем спасибо, все свободны....
 
#12
Не думал, что незнание ответа на вопрос может вызвать столько эмоций у человека, который зачем-то назвался "ЭфОдин".
Не проще ли было сразу сказать, что вы не знаете как осуществить данную задачу данным способом и не считаете этот способ целесообразным. Либо не отвечать вообще. Ведь просто...
И силно умного из себя корчить не надо, и оскорблять никого тоже.

Тема закрыта.
 
#13
Вы меня конечно извините, но разве тот самый параметр "axis" не есть ваш искомый пивот, а?
 
#14
это не пивот, это ось вращения... собственный вектор, для тех кто понимает...
 
#15
"это не пивот, это ось вращения... собственный вектор, для тех кто понимает..."
Какая хрен разница, это то, вокруг чего эти точки можно повернуть. В данном случае ось обьединяет в себе и пивот и обозначает плоскость в которой точки поворачиваются.
 
#16
Неправильно понимаете... Путаете векторное и декартово пространство... Линейную алгебру и аналитическую геометрию... rot оперирует с векторами в линейном пространстве, а не с точками в декартовом....
ось по вашему выражению "объединяет пивот и обозначает плоскость в которой точки поворачиваются" в одном единственном случае - когда пивот находиться в начале координат...
 
#17
"rot <vector> <vector> <float>
This command returns the position of the point after being rotated the number of radians about the axis. The first argument represents a point, the second an axis and the third an angle in radians."

First argument represents a point. It's just a method of notation to write point as a vector, since there's simply no such type in Maya like "point".
 
#18
Хотя да, у оси нет опорной точки, тут положение оси в пространстве не указано.
 
#19
уф... ажно сердце екнуло...
Чтобы "добавить" нужно сначала сделать параллельный перенос , перемещающий опорную точку в начало координат, выполнить поворот а потом выполнить обратный параллельный перенос...Формула выписывается без труда.
Если же хочется сделать все "одним махом", то можно просто сформировать матрицу трансформации 4x4 или "подсмотреть" ее, выполнив желаемые действия с любой вспомогательной трансформ нодой (пустая группа подойдет)
 
Сверху