首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在VPyhton (GlowScript)中添加标量和矢量错误

无法在VPyhton (GlowScript)中添加标量和矢量错误
EN

Stack Overflow用户
提问于 2018-06-25 13:17:18
回答 1查看 1.1K关注 0票数 1

我正在用VPython在GlowScript中实现一个太阳系。现在,我在运行时收到了这个错误: error不能添加标量和向量。我想我做得很对。我需要用pos换点东西吗。?

以下是代码:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-25 16:00:01

问题线:

代码语言:javascript
复制
Fgrav = G *( erdeM * sonneM) / (entfernung*entfernung)
erdeV = erdeV + Fgrav

Fgrav这里是一个标量(引力强度),而erdeV是一个矢量。为纠正这一情况,应包括部队的方向:

代码语言:javascript
复制
Fgrav = (-G * (erdeM * sonneM) / (entfernung ** 3)) * erde.pos
erdeV = erdeV + Fgrav
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51024446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档