首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Java存储向量?数据类型是什么?

问如何用Java存储向量?数据类型是什么?
EN

Stack Overflow用户
提问于 2011-04-30 19:43:48
回答 3查看 3.2K关注 0票数 0

我刚看了这教程。它是关于游戏的发展,它基本上是说,我需要存储加速度,速度,位置作为矢量,使游戏物理。希望这有意义!我现在需要选择数据类型。例如,我需要存储像.

(3、5、2) (6、2、3) (2,3)

还有,我需要做这样的加减法。

(0,1,4) + (3,-2,5) = (0 + 3,1-2,4+ 5) = (3,-1,9)

在这种情况下我应该使用什么数据类型?

对于一个向量,可能有两个整数(浮点数/双数)?可能是一个向量的数组,其中的值是整数(浮点数/双数)?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-30 19:45:57

听起来您需要三个值(可能是双倍值):

代码语言:javascript
复制
public class Vector3
{
    private final double x;
    private final double y;
    private final double z;

    public Vector3(double x, double y, double z)
    {
        this.x = x;
        this.y = y;
        this.z = z;
    }

    public Vector3 plus(Vector3 other)
    {
        return new Vector3(x + other.x, y + other.y, z + other.z);
    }

    // etc
}

请注意,我已经使这个不变--这并不总是性能的最佳选择(这可能与您的情况相关),但有助于提高可读性。

票数 8
EN

Stack Overflow用户

发布于 2011-04-30 19:56:09

也许公域-数学 OpenMapRealVector是有用的。

票数 1
EN

Stack Overflow用户

发布于 2011-04-30 20:02:41

或者您可以使用泛型:

代码语言:javascript
复制
public interface MathVector<T extends Number>
{
    MathVector<T> add(MathVector<T> addend);
    T innerProduct();
    // Vectors have more than this, but it makes the point
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5844193

复制
相关文章

相似问题

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