我需要帮助编写一个程序来模拟一个用速度向量下山的圆圈

问题描述 投票:0回答:1

我需要编写一个程序来模拟一个显示速度矢量的山丘上的环。或者至少模拟用速度矢量旋转的圆。它不一定需要下山。这就是我到目前为止所拥有的。非常感谢能够提供帮助的任何人。

'''
cylinderhill.py
'''
from visual import *
from math import *

inclinedPlane = box(pos = vector(1, 0, 0), size = (2, 0.2, 0.2), color = color.blue)
cir = ring(pos=(5,0,0), axis=(5,0,0), radius = (.05), thickness = (.01), color = color.red)
cir.vel = vector(1,1)
physics
1个回答
0
投票
  1. 为你的对象添加所需的变量(ring) 你需要:position,velocity,acceleration,radiuses并在开始时将它们设置为开始位置/状态(速度为零......)。
  2. 创建引擎应用程序能够重绘场景 一些计时器上的所有对象(环,表面......)和更新/重绘
  3. 添加物理模拟 计算实际加速度acc(重力,表面/碰撞正常相互作用,摩擦,致动器......)。然后根据Newtonian / D'Alembert方程更新速度vel,位置pos vel+=acc*dt; pos+=vel*dt; 在重绘之前在每个ontimer调用中执行此操作。 dt是计时器间隔...
  4. 一些技巧 在if (|vel|<1e-6) vel={0,0,...,0};更新之前添加pos以避免浮动准确性问题。 acc,vel,pos是矢量(用于2D模拟使用2D矢量)。使用float或double变量。
  5. 回转 如果你没有漂移(完全抓地力),那么角速度是: omg=|vel|/R; 其中R是环的外半径。如果你有漂移然后你必须首先从外力和内力计算角加速度eps然后计算: omg+=eps*dt; 其余类似于位置计算...角位置: ang+=omg*dt;

查看一些相关的问答:

© www.soinside.com 2019 - 2024. All rights reserved.