def update(): global i if i==len(x0Arr): i=0 return zFound=-(math.sqrt(l**2-x0Arr[i]**2-y0Arr[i]**2)-l) #ze wzoru na odleglosc punktu w 3d p=np.array([[0,x0Arr[i]],[0,y0Arr[i]],[l,zFound]]) p=p.transpose() plt.setData(pos=p,color=C) pBall=np.array([[x0Arr[i]],[y0Arr[i]],[zFound]]) #aktualizuje wspolrzedne linki pBall=pBall.transpose() cBall=pg.glColor('r') ball.setData(pos=pBall,color=cBall,size=0.3,pxMode=False) #aktualizuje wspolrzedne kulki i=i+1
def update(): '''update position and orientation''' nonlocal i, pts, state pos, q = np.array(state[:3]) * 100, state[3:7] uAxis, angle = q2ua(q) pt = (pos).reshape(1, 3) if pts.size < 150: pts = np.concatenate((pts, pt)) else: pts = np.concatenate((pts[-50:, :], pt)) plt.setData(pos=pts) ArrowMesh.resetTransform() sphereMesh.resetTransform() ArrowMesh.rotate(angle, uAxis[0], uAxis[1], uAxis[2]) ArrowMesh.translate(*pos) sphereMesh.translate(*pos) w.setWindowTitle('position={}cm'.format(np.round(pos, 1))) i += 1
def callGroupPlotter(data): plt = plotter.groupPlot() plt.setData(data) global varName plt.setVarName(varName) plt.configure_traits()
def callSinglePlotter(data): plt = plotter.singlePlot() plt.setData(data) global varName plt.setVarName(varName) plt.configure_traits()