我需要创建一个变量(速度)的大小和方向。如何做到这一点?

2024-04-16 22:53:12 发布

您现在位置:Python中文网/ 问答频道 /正文

然后用这个速度,加速度和初始位置找到下一个位置(2D)。唯一棘手的部分是矢量的创建!在


Tags: 矢量速度加速度棘手
3条回答

您可以创建一个velocity元组,其中magnity位于索引0,方向位于索引1。然后将加速度定义为一个float和一个startingPos,其中x在索引0,y在索引1。在

#0: magnitude 1: direction (degrees above x axis)
velocity = (2.3, 55)
acceleration = 3.2
#0: x 1: y
startingPos = (-10, 0)

您可以创建一个类,然后该类的每个实例(对象)都是velocity对象(向量)。一个非常简单的例子是-

class Velocity:
    def __init__(self, mag, direction):
        self.mag = mag
        self.direction = direction

然后可以创建速度对象,例如-

^{pr2}$

你可以通过-

print(v1.mag)
>> 5
print(v1.direction)
>> 5

上面是一个最简单的例子,你需要添加任何你想让我们的velocity对象支持的操作(读函数)。在

只需使用标准向量数学。距离是毕达哥拉斯定理,幅度是三角函数:

from math import *

class Vector2D:
    def __init__(self, x, y):
        self.x = float(x)
        self.y = float(y)

    def direction(self):
        return degrees(atan(self.y / self.x))

    def magnitude(self):
        return sqrt(self.x ** 2 + self.y ** 2)

相关问题 更多 >