ValueError:操作数无法与形状(3,)(0,)一起广播

时间:2017-11-22 18:52:27

标签: vpython

我的目标是使图像1沿着环从当前位置移动到180度。我一直在尝试做不同的事情,但似乎没有任何工作。我的最终目标是沿着环向不同的方向移动图像,最后合并它们并使它们消失。我不断得到上面的错误。你能帮忙吗?你能说出我怎么能解决这个问题吗?

from visual import *
import numpy as np
x = 3
y = 0
z = 0
i = pi/3
c = 0.120239 # A.U/minute
r = 1
for theta in arange(0, 2*pi, 0.1):        #range of theta values; 0 to    
  xunit = r * sin(theta)*cos(i) +x
  yunit = r * sin(theta)*sin(i) +y
  zunit = r*cos(theta) +z

ring = curve( color = color.white )       #creates a curve
for theta in arange(0, 2*pi, 0.01):

  ring.append( pos=(sin(theta)*cos(i) +x,sin(theta)*sin(i) +y,cos(theta)   +z) ) 

  image1=sphere(pos=(2.5,-0.866,0),radius=0.02, color=color.yellow)    
  image2=sphere(pos=(2.5,-0.866,0),radius=0.02, color=color.yellow) 
  earth=sphere(pos=(-3,0,-0.4),color=color.yellow, radius =0.3,material=materials.earth) #creates the observer
  d_c_p = pow((x-xunit)**2 + (y-yunit)**2 + (z-zunit)**2,0.5) #calculates the distance between the center and points on ring
  d_n_p = abs(yunit + 0.4998112152755791) #calculates the distance to the nearest point
  t1 = ( d_c_p+d_n_p)/c
  t0=d_c_p/c
  t=t1-t0                                  #calculates the time it takes from one point to another

  theta = []
  t = []
  dtheta = np.diff(theta)                  #calculates the difference in theta

  dt = np.diff(t)                          #calculates the difference in t
 speed = r*dtheta/dt                      #hence this calculates the speed

 deltat = 0.005                          
 t2=0                                      
 while True:
     rate(5)

     image2.pos = image2.pos + speed*deltat  #increments the position of the image1 
  t2 = t2 + deltat

0 个答案:

没有答案