【问题标题】:Cannot add scalar and a vector error in VPyhton (GlowScript)无法在 VPyhton (GlowScript) 中添加标量和矢量错误
【发布时间】:2018-06-25 13:17:18
【问题描述】:

我正在用 GlowScript 中的 VPython 实现一个太阳系。现在我在运行时收到此错误:错误无法添加标量和向量。我想我都做对了。我必须用 pos 改变一些东西吗? ?

代码如下:

GlowScript 2.7 VPython
from visual import *

scene = display(width = 800, height = 800, center = vec(0,0.5,0))

#sun
sonne = sphere(pos = vec (0,0,0), radius=8, color = color.orange, shininess=1)

#earth
erde = sphere(pos = vec (50,0,0), radius=1.5, color = color.blue, make_trail=True)

erdeV = vector(0,0,5)

#masses
erdeM = 5.97*10**24
sonneM = 1.989*10**30

#Grav-constant
G = 6.67259*10**-11

for i in range (1000):
    rate(1000)
    erde.pos = erde.pos + erdeV

    #distance
    entfernung = sqrt(erde.pos.y**2 + erde.pos.z**2)


    #Gravitational law F = G * m * M / r*r --> G*s*e/AE*AE ae=Astr. Einheit
    Fgrav = G *( erdeM * sonneM) / (entfernung*entfernung)
    erdeV = erdeV + Fgrav
    erde.pos += erdeV

    if entfernung <= sonne.radius: break

【问题讨论】:

    标签: python physics vpython glowscript


    【解决方案1】:

    问题线:

    Fgrav = G *( erdeM * sonneM) / (entfernung*entfernung)
    erdeV = erdeV + Fgrav
    

    Fgrav 这里是一个标量(引力强度),而erdeV 是一个向量。为了解决这个问题,包括力的方向:

    Fgrav = (-G * (erdeM * sonneM) / (entfernung ** 3)) * erde.pos
    erdeV = erdeV + Fgrav
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      • 1970-01-01
      • 2013-10-17
      • 2023-01-12
      • 2020-12-27
      相关资源
      最近更新 更多