Я работаю в Maya, и у меня есть кривая и сетка «пол». В любой точке кривой у меня есть значения x и z (мировое пространство), что дает мне двумерное расположение точки сверху вниз. Я хочу спроецировать кривую вниз на пол, чтобы найти значение y (т.е. высоту) пола в любой точке.
То есть, учитывая значения x и z, я хочу запросить сетку, чтобы получить соответствующее значение y на поверхности.
Эти изображения были сделаны с использованием поли-поверхности, но в основном носят иллюстративный характер, для моих целей не имеет большого значения, является ли пол поли-сеткой или поли-/NURBS-поверхностью, поэтому, пожалуйста, укажите, какая из них более уместна. (Однако было бы хорошо иметь ответ на все эти вопросы!)
Я безуспешно пытался использовать команды pointOnSurface, xform и pointPosition. Я также пытался использовать ближайший узелPointOnSurface, но мне не нужна ближайшая точка в каком-либо направлении, мне особенно нужно значение y в точных точках x и z. Я знаю, что существует y, удовлетворяющий этим условиям, поскольку я сам строю кривую и сетку/поверхность.
У меня есть следующий код для получения координат [x, z] в 50 точках выборки вдоль кривой:
import maya.cmds as cmds
# Returns x and z coordinates of points along path
def getPathPos():
path = 'curve1'
point_dist = 1.0/50
path_pos = []
for i in range(50):
param = i * point_dist
pos = cmds.pointOnCurve(path, parameter=param, turnOnPercentage=True, position=True)
path_pos.append([pos[0], pos[2]])
return path_pos
Но тогда я застрял. Я не могу понять, как использовать эти точки для запроса точек на сетке.
Доволен ответами на Python или MEL.