【发布时间】:2020-12-05 07:43:34
【问题描述】:
我正在做一个项目,在 python 中创建一个新的“类”来做一些运动学计算。
但是,鉴于常见的物理运动学方程,我无法看到如何在 python 中构建公式。
这是总体目标:
"构造一个名为 projectile 的类。该类变量应包括射弹的发射高度、降落的高度、初速度以及初速度相对于水平面的角度。该类方法应包括计算弹丸的射程、最大高度和最终速度。"
我已经定义了新类和变量,但不确定如何构建函数。任何帮助都会很有帮助。到目前为止的代码如下:
import math
import numpy as np
import matplotlib.pyplot as plt
import pylab
import os
# acceleration due to gravity = 9.80665 m/s**2
class Projectile(object):
# h0 is vertical starting position which starts at y = 0
def __init__(self,h0,v0,theta):
self.h0 = h0 #height
self.v0 = v0 #speed
self.theta = theta # angle above horizontal
self.v0x = v0*math.cos(theta) #x component of velocity
self.v0y = v0*math.sin(theta) #y component of velocity
【问题讨论】:
-
现在您知道,在没有空气摩擦的情况下,运动可以整合到
x(t)=v0x*t和y(t)=h0+v0y*t-0.5*g*t^2。从这里开始,您必须求解一些二次方程并将其结果代回。如果您添加空气阻力,最直观的方法是使用带有事件的 ODE 求解器,这是理解上相当大的一步,即使它只有几行额外的代码。
标签: python physics projectile kinematics