public class Vector
extends java.lang.Object
implements java.io.Serializable, java.lang.Cloneable
| Modifier and Type | Field and Description |
|---|---|
static Vector |
normVector |
static float |
TO_DEGREE |
static float |
TO_RADIAN |
float |
x |
float |
y |
float |
z |
static Vector |
zeroVector |
| Constructor and Description |
|---|
Vector() |
Vector(float x,
float y) |
Vector(float x,
float y,
float z) |
Vector(Vector v) |
| Modifier and Type | Method and Description |
|---|---|
Vector |
add(float x,
float y)
ベクトルに加算 v = v + (x,y,0)
|
Vector |
add(float x,
float y,
float z)
ベクトルを加算 v = v + (x,y,z)
|
Vector |
add(float x,
float y,
float z,
float a)
ベクトルを加算(スケール変換有り)v = v + (x,y,z)*a
|
Vector |
add(Vector v)
ベクトルを加算 v = v + v'
|
Vector |
add(Vector v,
float a)
ベクトルを加算(スケール変換有り) v = v + v' * a
|
float |
angleXY()
XY平面上でベクトルとX軸の角度を取得
|
float |
angleXZ()
XZ平面上でベクトルとX軸の角度を取得
|
float |
angleYZ()
YZ平面上でベクトルとY軸の角度を取得
|
Vector |
clear(float scalar)
ベクトルの各成分に指定したスカラ値をセット
|
Vector |
clone() |
Vector |
cross(Vector v) |
static Vector |
cross(Vector v3,
Vector v1,
Vector v2)
ベクトルの外積を計算(3D, crossProductと同じ)
|
float |
cross2(Vector v)
ベクトルの外積を計算(2D, crossProduct2と同じ)
v1×v2= x1*y2-x2*y1 = |v1||v2|sin(θ)
|
Vector |
crossProduct(Vector v) |
static Vector |
crossProduct(Vector v3,
Vector v1,
Vector v2)
ベクトルの外積を計算(3D, crossと同じ)
|
float |
crossProduct2(Vector v)
ベクトルの外積を計算(2D, cross2と同じ)
v1×v2= x1*y2-x2*y1 = |v1||v2|sin(θ)
|
float |
distance(float x,
float y)
ベクトル間の距離を取得する
|
float |
distance(float x,
float y,
float z)
ベクトル間の距離を取得する
|
float |
distance(Vector v)
ベクトル間の距離を取得する
|
float |
distSquared(float x,
float y)
ベクトル間の距離の2乗を取得する
|
float |
distSquared(float x,
float y,
float z)
ベクトル間の距離の2乗を取得する
|
float |
distSquared(Vector v)
ベクトル間の距離の2乗を取得する
|
Vector |
div(float scale)
ベクトルの各成分をスカラ値で割り算
|
Vector |
div(float x_scale,
float y_scale)
ベクトルの各成分をスカラ値で割り算
|
Vector |
div(float x_scale,
float y_scale,
float z_scale)
ベクトルの各成分をスカラ値で割り算
|
Vector |
div(Vector other)
ベクトルの各成分同士の割り算(内積・外積じゃないよ)
|
float |
dot(float x,
float y,
float z)
ベクトルの内積を取得(dotProductと同じ)
|
float |
dot(Vector v)
ベクトルの内積を取得(dotProductと同じ)
標準化ベクトルv2を含む直線にベクトルv1を真っ直ぐ下ろした(正射影した)時の長さ
|
float |
dotProduct(float x,
float y,
float z)
ベクトルの内積を取得(dotと同じ)
|
float |
dotProduct(Vector v)
ベクトルの内積を取得(dotと同じ)
標準化ベクトルv2を含む直線にベクトルv1を真っ直ぐ下ろした(正射影した)時の長さ
|
float |
getAngle(Vector v)
ベクトル間の角度を取得
ベクトル1 Za=(X1,Y1,Z1)、ベクトル2 Zb=(X2,Y2,Z2)、求める角φとすると、
cos φ = Za・Zb / (|Za| |Zb|)
=(X1X2+Y1Y2+Z1Z2) / √{(X1^2 + Y1^2 + Z1^2)(X2^2 + Y2^2 + Z2^2)}
上式のアークコサイン(cos^-1)を取ればOK。
|
float[] |
getQuat()
クオータニオンとして取得(4番目の成分は1)
|
float |
len()
ベクトルの長さを取得
|
float |
lenSquared()
ベクトルの長さの2乗を取得
|
Vector |
limit(float scalar)
x,y,z各成分を指定した値[-scalar, +scalar]に収まるように制限する
|
Vector |
limit(float lower,
float upper)
x,y,z各成分を指定した値[lower, upper]に収まるように制限する
|
Vector |
mod(float scalar)
ベクトルの各成分をスカラ値で剰余計算
|
Vector |
mult(float scale)
ベクトルの各成分にスカラ値をかけ算
|
Vector |
mult(float x_scale,
float y_scale)
ベクトルの各成分にスカラ値をかけ算
|
Vector |
mult(float x_scale,
float y_scale,
float z_scale)
ベクトルの各成分にスカラ値をかけ算
|
Vector |
mult(Vector other)
ベクトルの各成分同士の掛け算(内積・外積じゃないよ)
|
Vector |
normalize()
ベクトルを正規化(長さを1にする)
|
Vector |
rotate_inv(float angleX,
float angleY,
float angleZ)
逆回転(スレッドセーフではない)
|
Vector |
rotate_inv(Vector angle)
逆回転(スレッドセーフではない)
|
Vector |
rotate_inv(Vector angle,
float a)
逆回転(スレッドセーフではない)
|
Vector |
rotate(float angleX,
float angleY,
float angleZ)
ベクトルを回転(スレッドセーフではない)
|
Vector |
rotate(float angle,
float axisX,
float axisY,
float axisZ)
ベクトルを回転(スレッドセーフではない)
x軸:(1,0,0), y軸(0,1,0), z軸(0,0,1)
|
Vector |
rotate(Vector angle) |
static Vector[] |
rotate(Vector[] v,
float angleX,
float angleY,
float angleZ)
ベクトル配列内の各ベクトルを回転(スレッドセーフでは無い)
|
Vector |
rotate(Vector angle,
float a)
ベクトルを回転(スレッドセーフではない) v = v#rot(angle * a)
|
static Vector |
rotate(Vector v,
float angleX,
float angleY,
float angleZ)
ベクトルを回転(スレッドセーフではない)
|
Vector |
rotateXY(float angle) |
Vector |
rotateXZ(float angle)
Y軸周りに(XZ平面上で)ベクトルを指定した角度[度]回転させる
|
Vector |
rotateYZ(float angle)
X軸周りに(YZ平面上で)ベクトルを指定した角度[度]回転させる
|
Vector |
set(float x,
float y)
ベクトルの各成分に指定したスカラ値をセット, zは0
|
Vector |
set(float x,
float y,
float z)
ベクトルの各成分に指定したスカラ値をセット v = (x,y,z)
|
Vector |
set(float x,
float y,
float z,
float a)
ベクトルの各成分に指定したスカラ値をセット(スケール変換有り) v = (x,y,z) * a
|
Vector |
set(Vector v)
ベクトルに指定したベクトルをセット v = v'
|
Vector |
set(Vector v,
float a)
ベクトルに指定したベクトルをセット(スケール変換あり) v' = v * a
|
Vector |
setQuat(float[] q)
クオータニオンをセット(4番目の成分は無視される)
|
Vector |
sign()
各成分を負なら-1.0f, ゼロなら0.0f, 正なら1.0fにする
|
float |
slope()
原点とこのベクトルが示す点を通る直線の傾きを取得(2D)
|
float |
slope(Vector v)
2つのベクトルで示す点を通る直線の傾きを取得(2D)
|
Vector |
sub(float x,
float y)
ベクトルを減算 v = v - (x,y,0)
|
Vector |
sub(float x,
float y,
float z)
ベクトルを減算 v = v - (x,y,z)
|
Vector |
sub(float x,
float y,
float z,
float a)
ベクトルを減算(スケール変換有り)v = v - (x,y,z)*a
|
Vector |
sub(Vector v)
ベクトルを減算 v = v - v'
|
Vector |
sub(Vector v,
float a) |
Vector |
swap(Vector v)
ベクトルの各成分を交換
|
Vector |
swapXY()
x成分とy成分を交換
|
Vector |
toDegree()
x,y,zがそれぞれラジアンであるとみなして角度に変換する
|
Vector |
toRadian()
x,y,zがそれぞれ角度(degree)であるとみなしてラジアンに変換する
|
java.lang.String |
toString() |
java.lang.String |
toString(java.lang.String fmt) |
static Vector |
vector(float x,
float y,
float z) |
static Vector |
vector(Vector v) |
float |
x()
x成分値を取得
|
void |
x(float x)
x成分値をセット
|
float |
y()
y成分値を取得
|
void |
y(float y)
y成分値をセット
|
float |
z()
z成分値を取得
|
void |
z(float z)
z成分値をセット
|
public static final float TO_RADIAN
public static final float TO_DEGREE
public static final Vector zeroVector
public static final Vector normVector
public float x
public float y
public float z
public Vector()
public Vector(float x,
float y)
public Vector(Vector v)
public Vector(float x,
float y,
float z)
public static Vector vector(float x, float y, float z)
public Vector clone() throws java.lang.CloneNotSupportedException
clone in class java.lang.Objectjava.lang.CloneNotSupportedExceptionpublic Vector clear(float scalar)
scalar - public Vector set(float x, float y)
x - y - public Vector set(Vector v, float a)
v - a - public Vector set(float x, float y, float z)
x - y - z - public Vector set(float x, float y, float z, float a)
x - y - z - a - public float x()
public void x(float x)
x - public float y()
public void y(float y)
y - public float z()
public void z(float z)
z - public Vector add(float x, float y)
x - y - public Vector add(float x, float y, float z)
x - y - z - public Vector add(float x, float y, float z, float a)
x - y - z - a - public Vector add(Vector v, float a)
v - a - public Vector sub(float x, float y)
x - y - public Vector sub(float x, float y, float z)
x - y - z - public Vector sub(float x, float y, float z, float a)
x - y - z - a - public Vector mult(float scale)
public Vector mult(float x_scale, float y_scale)
public Vector mult(float x_scale, float y_scale, float z_scale)
public Vector div(float scale)
public Vector div(float x_scale, float y_scale)
public Vector div(float x_scale, float y_scale, float z_scale)
public Vector mod(float scalar)
public Vector toRadian()
public Vector toDegree()
public Vector limit(float scalar)
scalar - public Vector limit(float lower, float upper)
lower - upper - public float len()
public float lenSquared()
public Vector normalize()
public float dot(Vector v)
public float dotProduct(Vector v)
public float dot(float x,
float y,
float z)
public float dotProduct(float x,
float y,
float z)
public float cross2(Vector v)
public float crossProduct2(Vector v)
public static Vector crossProduct(Vector v3, Vector v1, Vector v2)
public float angleXY()
public float angleXZ()
public float angleYZ()
public float getAngle(Vector v)
v - public Vector rotateXY(float angle)
public Vector rotateXZ(float angle)
public Vector rotateYZ(float angle)
public Vector rotate(float angle, float axisX, float axisY, float axisZ)
angle - [度]axisX - axisY - axisZ - public Vector rotate(float angleX, float angleY, float angleZ)
angleX - [度]angleY - [度]angleZ - [度]public static Vector rotate(Vector v, float angleX, float angleY, float angleZ)
v - 回転させるベクトルangleX - [度]angleY - [度]angleZ - [度]public static Vector[] rotate(Vector[] v, float angleX, float angleY, float angleZ)
v - ベクトル配列angleX - [度]angleY - [度]angleZ - [度]public Vector rotate(Vector angle, float a)
angle - 回転角, 各成分は [度]a - スケール変換public Vector rotate_inv(float angleX, float angleY, float angleZ)
angleX - angleY - angleZ - public Vector rotate_inv(Vector angle, float a)
angle - a - public float[] getQuat()
public Vector setQuat(float[] q)
q - public float distance(Vector v)
public float distance(float x,
float y)
x - y - public float distance(float x,
float y,
float z)
x - y - z - public float distSquared(Vector v)
v - public float distSquared(float x,
float y)
x - y - public float distSquared(float x,
float y,
float z)
x - y - z - public Vector swapXY()
public float slope(Vector v)
public float slope()
public Vector sign()
public java.lang.String toString()
toString in class java.lang.Objectpublic java.lang.String toString(java.lang.String fmt)