vector3d.java

来自「MASON代表多主体邻里或网络仿真(Multi-Agent Simulator 」· Java 代码 · 共 78 行

JAVA
78
字号
package sim.app.woims3d;import sim.util.Double3D;public class Vector3D implements java.io.Serializable    {    public double x;    public double y;    public double z;    public Vector3D( double x, double y, double z )        {        this.x = x;        this.y = y;        this.z = z;        }    public Vector3D( final Double3D d )        {        this.x = d.x;        this.y = d.y;        this.z = d.z;        }    public final Vector3D add( final Vector3D b )        {        return new Vector3D( x + b.x, y + b.y, z + b.z );        }    public final Vector3D add( final Double3D b )        {        return new Vector3D( x + b.x, y + b.y, z + b.z );        }    public final Vector3D subtract( final Vector3D b )        {        return new Vector3D( x - b.x, y - b.y, z - b.z );        }    public final Vector3D subtract( final Double3D b )        {        return new Vector3D( x - b.x, y - b.y, z - b.z );        }    public final Vector3D amplify( double alpha )        {        return new Vector3D( x * alpha, y * alpha, z * alpha );        }    public final Vector3D normalize()        {        if( x != 0 || y != 0 || z != 0)            {            double temp = Math.sqrt( x*x+y*y+z*z );            return new Vector3D( x/temp, y/temp, z/temp );            }        else            return new Vector3D( 0, 0, 0 );        }    public final double length()        {        return Math.sqrt( x*x+y*y+z*z );        }    public final Vector3D setLength( double dist )        {        if( dist == 0 )            return new Vector3D( 0, 0, 0 );        if( x == 0 && y == 0 && z == 0 )            return new Vector3D( 0, 0, 0 );        double temp = Math.sqrt( x*x+y*y+z*z );        return new Vector3D( x * dist / temp, y * dist / temp, z * dist / temp );        }    }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?