On Thu, Mar 17, 2011 at 5:09 PM, Terry Reedy <tjre...@udel.edu> wrote:
> Look at scipy. > > -- > Thanks for the info. I realized I made some mistakes. Anyway, what I'm trying to do is in maya (python), fit selected vertices on a curve. Here is what I have so far: import maya.cmds as cmds import numpy def run_main(): verts = cmds.ls(sl=True,fl=True) if len(verts) >= 2: degree = 5 x = [] y = [] for vert in verts: vert_x,vert_y,vert_z = cmds.pointPosition(vert,w=True) x.append(vert_x) y.append(vert_z) print "x ", x print "y ", y x_numpy = numpy.array(x) y_numpy = numpy.array(y) funct = numpy.polyfit(x_numpy,y_numpy,degree) print funct #p : ndarray, shape (M,) or (M, K) #Polynomial coefficients, highest power first. If y was 2-D, the coefficients for k-th data set are in p[:,k]. #make an outline curve curvs = [] for i in range(len(verts)): vert_x,vert_y,vert_z = cmds.pointPosition(verts[i],w=True) pos_x = 0 pos_y = 0 for j in range(degree): pos_x += (funct[j] *(vert_x**(degree-j))) pos_y += (funct[j] *(vert_y**(degree-j))) centerPos = (pos_x,pos_y,vert_z) curvs.append(centerPos) if curvs: print "cirv ", curvs crv = cmds.curve(p=curvs) cmds.select(cl=True) for v in verts: cmds.select(v,tgl=True) else: print "please select more than 2 verts" But this only works for 2D (x,z-axis). Is it possible to make it work at 3 by combining them or doing (x,y) and (x,z) and somehow colate (average?) the results? Is there a formula for combining the results? Thanks again for any help or suggestions
-- http://mail.python.org/mailman/listinfo/python-list