Это мой код. Ошибка возникает в первой строке определения функции обновления. Когда я изменил self.xValue на self.xValue (), я не получил ошибку, когда делал это только для одной строки, но я получал ошибку, когда делал это в каждой строке.
planet(QGraphicsEllipseItem):
def __init__(self, mass, perihelion, aphelion, x, y, brush, diameter):
super(planet, self).__init__(float(x-float(diameter)/2), float(y-float(diameter)/2), float(diameter), float(diameter))
print("(",str(self.x())+",",str(self.y())+")")
print(str(x),str(y))
print(str(self.scenePos().x()))
self.setBrush(brush)
self.mass=mass
self.semiMajorAxis=(float(perihelion)+float(aphelion))/2
self.velocityX=0
self.velocityY=((1.989*10**30)*(6.674*10**(-11))*((2/int(perihelion))-1/self.semiMajorAxis))
self.xValue=float(x)
self.yValue=float(y)
def update(self):
ax=6.67408*((10**(-11))*(1.989*(10**30))*(-1)*self.xValue)/((((self.xValue**2)+(self.yValue**2))*((self.xValue**2)+(self.yValue**2)))**.5) #this is where the error occurs
ay=6.67408*((10**(-11))*(1.989*(10**30))*(-1)*self.yValue)/((((self.xValue**2)+(self.yValue**2))*((self.xValue**2)+(self.yValue**2)))**.5)
k1x=self.velocityX
k1y=self.velocityY
k1vx=ax*self.xValue*self.yValue
k1vy=ay*self.xValue*self.yValue
k2x=self.velocityX+.01*.5*k1vx
k2y=self.velocityY+.01*.5*k1vy
k2vx=ax*(self.xValue+.01*.5*k1x*self.yValue+.01*.5*k1y)
k2vy=ay*(self.xValue+.01*.5*k1x*self.yValue+.01*.5*k1y)
k3x=self.velocityX+.01*.5*k2vx
k3y=self.velocityY+.01*.5*k2vy
k3vx=ax*(self.xValue+.01*.5*k2x*self.yValue+.01*.5*k2y)
k3vy=ay*(self.xValue+.01*.5*k2x*self.yValue+.01*.5*k2y)
k4x=self.velocityX+.01*k3vx
k4y=self.velocityY+.01*k2vy
k4vx=ax*(self.xValue+.01*k3x*self.yValue+.01*k3y)
k4vy=ay*(self.xValue+.01*k3x*self.yValue+.01*k3y)
self.setX(self.xValue+(.01/6.0)*(k1x+2*k2x+2*k3x+k4x))
self.setY(self.yValue+(.01/6.0)*(k1y+2*k2y+2*k3y+k4y))
self.xValue=self.x
self.yValue=self.y
self.velocityX=self.velocityX+(.01/6.0)*(k1vx+2*k2vx+2*k3vx+k4vx)
self.velocityY=self.velocityY+(.01/6.0)*(k1vy+2*k2vy+2*k3vy+k4vy)