Я работаю в Maya, и у меня есть кривая и сетка для пола. В любой точке кривой у меня есть значения x и z (мировое пространство), что дает мне двухмерное расположение точки сверху вниз. Я хочу спроецировать кривую на пол, чтобы найти значение y (то есть высоту) пола в любой точке.
То есть, учитывая значения x и z, я хочу запросить сетку, чтобы получить соответствующее значение y на поверхности.
Эти изображения были сделаны с использованием поли-поверхности, но в основном они являются иллюстративными, для моих целей не имеет большого значения, является ли пол поли-сеткой или поли / NURBS-поверхностью, поэтому, если это более уместно, скажите, пожалуйста. (Однако было бы хорошо получить ответ на все эти вопросы!)
Я безуспешно пытался использовать команды pointOnSurface, xform и pointPosition. Я также пытался использовать узел closestPointOnSurface, но мне не нужна ближайшая точка в любом направлении, я специально хочу значение y в точных точках x и z. Я знаю, что есть у, который удовлетворяет этим условиям, так как я сам строю кривую и сетку / поверхность.
У меня есть следующий код для получения координат [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.