Как исправить возникшее исключение: TypeError не поддерживается тип (ы) операндов для *: 'float' и 'builtin_function_or_method', которые продолжают происходить? - PullRequest
0 голосов
/ 04 мая 2020

Это мой код. Ошибка возникает в первой строке определения функции обновления. Когда я изменил 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...