mmath

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 12, 2024 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package argsort implements a variant of the sort function that returns a slice of indices that would sort the array.

The name comes from the popular Python numpy.Argsort function.

Index

Constants

View Source
const (
	GIMBAL1_RAD = 88.0 / 180.0 * math.Pi
	GIMBAL2_RAD = GIMBAL1_RAD * 2
	ONE_RAD     = math.Pi
	HALF_RAD    = math.Pi / 2
)
View Source
const (
	// MMDでの補間曲線の最大値
	CURVE_MAX = 127.0
)

Variables

View Source
var (
	// Zero holds a zero matrix.
	MMat3Zero = MMat3{
		0, 0, 0,
		0, 0, 0,
		0, 0, 0,
	}

	// Ident holds an ident matrix.
	MMat3Ident = MMat3{
		1, 0, 0,
		0, 1, 0,
		0, 0, 1,
	}
)
View Source
var (
	// Zero holds a zero matrix.
	MMat4Zero = MMat4{
		0, 0, 0, 0,
		0, 0, 0, 0,
		0, 0, 0, 0,
		0, 0, 0, 0,
	}

	// Ident holds an ident matrix.
	MMat4Ident = MMat4{
		1, 0, 0, 0,
		0, 1, 0, 0,
		0, 0, 1, 0,
		0, 0, 0, 1,
	}
)
View Source
var (
	// Zero holds a zero quaternion.
	MQuaternionZero = MQuaternion{}

	// Ident holds an ident quaternion.
	MQuaternionIdent = MQuaternion{1., mgl64.Vec3{0, 0, 0}}
)
View Source
var (
	MVec2Zero = MVec2{}

	// UnitX holds a vector with X set to one.
	MVec2UnitX = MVec2{1, 0}
	// UnitY holds a vector with Y set to one.
	MVec2UnitY = MVec2{0, 1}
	// UnitXY holds a vector with X and Y set to one.
	MVec2UnitXY = MVec2{1, 1}

	// MinVal holds a vector with the smallest possible component values.
	MVec2MinVal = MVec2{-math.MaxFloat64, -math.MaxFloat64}
	// MaxVal holds a vector with the highest possible component values.
	MVec2MaxVal = MVec2{+math.MaxFloat64, +math.MaxFloat64}
)
View Source
var (
	MVec3Zero = &MVec3{}

	MVec3UnitX = &MVec3{1, 0, 0}
	MVec3UnitY = &MVec3{0, 1, 0}
	MVec3UnitZ = &MVec3{0, 0, 1}
	MVec3One   = &MVec3{1, 1, 1}

	MVec3UnitXInv = &MVec3{-1, 0, 0}
	MVec3UnitYInv = &MVec3{0, -1, 0}
	MVec3UnitZInv = &MVec3{0, 0, -1}
	MVec3OneInv   = &MVec3{-1, -1, -1}

	MVec3MinVal = &MVec3{-math.MaxFloat64, -math.MaxFloat64, -math.MaxFloat64}
	MVec3MaxVal = &MVec3{+math.MaxFloat64, +math.MaxFloat64, +math.MaxFloat64}
)
View Source
var (
	MVec4Zero = &MVec4{}

	// UnitXW holds a vector with X and W set to one.
	MVec4UnitXW = &MVec4{1, 0, 0, 1}
	// UnitYW holds a vector with Y and W set to one.
	MVec4UnitYW = &MVec4{0, 1, 0, 1}
	// UnitZW holds a vector with Z and W set to one.
	MVec4UnitZW = &MVec4{0, 0, 1, 1}
	// UnitW holds a vector with W set to one.
	MVec4UnitW = &MVec4{0, 0, 0, 1}
	// UnitXYZW holds a vector with X, Y, Z, W set to one.
	MVec4One = &MVec4{1, 1, 1, 1}

	// MinVal holds a vector with the smallest possible component values.
	MVec4MinVal = &MVec4{-math.MaxFloat64, -math.MaxFloat64, -math.MaxFloat64, 1}
	// MaxVal holds a vector with the highest possible component values.
	MVec4MaxVal = &MVec4{+math.MaxFloat64, +math.MaxFloat64, +math.MaxFloat64, 1}
)
View Source
var LINER_CURVE = &Curve{
	Start: MVec2{20.0, 20.0},
	End:   MVec2{107.0, 107.0},
}

Functions

func ArgMax

func ArgMax(distances []float64) int

func ArgMin

func ArgMin(distances []float64) int

func ArgSort

func ArgSort(s sort.Interface) []int

ArgSort returns the indices that would sort s.

func BoolToFlag

func BoolToFlag(b bool) float64

func BoolToInt

func BoolToInt(b bool) int

func ClampedFloat

func ClampedFloat(v float64, min float64, max float64) float64

Clamp01 ベクトルの各要素をmin~maxの範囲内にクランプします

func ClampedFloat32

func ClampedFloat32(v float32, min float32, max float32) float32

Clamp01 ベクトルの各要素をmin~maxの範囲内にクランプします

func Contains

func Contains[S ~[]E, E comparable](s S, v E) bool

slices.Contains の高速版

func DegToRad

func DegToRad(deg float64) float64

Utility functions to convert between degrees and radians

func DistanceFromPlaneToLine

func DistanceFromPlaneToLine(near, far, forward, right, up, p *MVec3) float64

2点間のベクトルと、点Pを含むカメラ平面と平行な面、との距離を計算

func DistanceFromPointToLine

func DistanceFromPointToLine(a, b, p *MVec3) float64

2点間のベクトルと点Pの直交距離を計算

func DistanceLineToPoints

func DistanceLineToPoints(worldPos *MVec3, points []*MVec3) []float64

DistanceLineToPoints 線分と点の距離を計算します

func Distances

func Distances(v *MVec3, others []*MVec3) []float64

func Dot4

func Dot4(a, b *MVec4) float64

Dot4 returns the 4 element vdot product of two vectors.

func Evaluate

func Evaluate(curve *Curve, start, now, end int) (float64, float64, float64)

https://pomax.github.io/bezierinfo https://shspage.hatenadiary.org/entry/20140625/1403702735 https://bezier.readthedocs.io/en/stable/python/reference/bezier.curve.html#bezier.curve.Curve.evaluate https://edvakf.hatenadiary.org/entry/20111016/1318716097 Evaluate 補間曲線を求めます。 return x(計算キーフレ時点のX値), y(計算キーフレ時点のY値), t(計算キーフレまでの変化量)

func FindInflectionPoints

func FindInflectionPoints(values []float64, tolerance float64, space int) map[int]int

func FindSlerpT

func FindSlerpT(Q1, Q2, Qt *MQuaternion) float64

FindSlerpTは始点Q1、終点Q2、中間点Qtが与えられたとき、Slerp(Q1, Q2, t) ? Qtとなるtを見つけます。

func FindSlerpTBisection

func FindSlerpTBisection(Q1, Q2, Qt *MQuaternion, tol float64) float64

FindSlerpTBisectionは始点Q1、終点Q2、中間点Qtが与えられたとき、Slerp(Q1, Q2, t) ? Qtとなるtを二分法で見つけます。

func IsPowerOfTwo

func IsPowerOfTwo(n int) bool

func LerpFloat

func LerpFloat(v1, v2 float64, t float64) float64

線形補間

func MaxFloat

func MaxFloat(arr []float64) float64

func MaxInt

func MaxInt(arr []int) int

func Mean

func Mean(nums []float64) float64

平均値計算

func Mean2DHorizontal

func Mean2DHorizontal(nums [][]float64) []float64

二次元配列の平均値計算(行基準)

func Mean2DVertical

func Mean2DVertical(nums [][]float64) []float64

二次元配列の平均値計算(列基準)

func Median

func Median(nums []float64) float64

中央値計算

func MergeInflectionPoints

func MergeInflectionPoints(values []float64, inflectionPointsList []map[int]int, space int) map[int]int

func NearEquals

func NearEquals(v float64, other float64, epsilon float64) bool

func RadToDeg

func RadToDeg(rad float64) float64

func SearchFloat32s

func SearchFloat32s(a []float32, x float32) int

func SearchFloat64s

func SearchFloat64s(a []float64, x float64) int

func SearchInts

func SearchInts(a []int, x int) int

func Sign

func Sign(v float64) float64

func SortFloat32s

func SortFloat32s(x []float32)

func SortFloat64s

func SortFloat64s(x []float64)

func SortInto

func SortInto(s sort.Interface, indices []int)

SortInto sorts s and populates the indices slice with the indices that would sort the input slice.

func SortInts

func SortInts(x []int)

func SortSlice

func SortSlice(slice interface{}, less func(i, j int) bool) []int

SortSlice return the indices that would sort a slice given a comparison function.

func SortSliceInto

func SortSliceInto(slice interface{}, indices []int, less func(i, j int) bool)

SortSliceInto sorts a slice and populates the indices slice with the indices that would sort the input slice.

func SplitCurve

func SplitCurve(curve *Curve, start, now, end int) (*Curve, *Curve)

SplitCurve 補間曲線を指定キーフレで前後に分割する

func Std

func Std(nums []float64) float64

標準偏差計算

func ThetaToRad

func ThetaToRad(theta float64) float64

func ToDegree

func ToDegree(radian float64) float64

func ToRadian

func ToRadian(degree float64) float64

func VectorToDegree

func VectorToDegree(a *MVec3, b *MVec3) float64

VectorToDegreeは、与えられた2つのベクトルから角度に変換します。

func VectorToRadian

func VectorToRadian(a *MVec3, b *MVec3) float64

VectorToRadianは、与えられた2つのベクトルからラジアン角度に変換します。

Types

type Curve

type Curve struct {
	Start MVec2
	End   MVec2
}

func NewCurve

func NewCurve() *Curve

func NewCurveByValues

func NewCurveByValues(startX, startY, endX, endY byte) *Curve

func NewCurveFromValues

func NewCurveFromValues(values []float64) *Curve

NewCurveFromValues calculates the control points of a cubic Bezier curve that best fits a given set of y-values.

func (*Curve) Copy

func (v *Curve) Copy() *Curve

Copy

func (*Curve) Normalize

func (v *Curve) Normalize(begin, finish *MVec2)

type Float32Slice

type Float32Slice []float32

Float32Slice implements Interface for a []float32, sorting in increasing order, with not-a-number (NaN) values ordered before other values.

func (Float32Slice) Len

func (x Float32Slice) Len() int

func (Float32Slice) Less

func (x Float32Slice) Less(i, j int) bool

Less reports whether x[i] should be ordered before x[j], as required by the sort Interface. Note that floating-point comparison by itself is not a transitive relation: it does not report a consistent ordering for not-a-number (NaN) values. This implementation of Less places NaN values before any others, by using:

x[i] < x[j] || (math.IsNaN(x[i]) && !math.IsNaN(x[j]))

func (Float32Slice) Sort

func (x Float32Slice) Sort()

Sort is a convenience method: x.Sort() calls Sort(x).

func (Float32Slice) Swap

func (x Float32Slice) Swap(i, j int)

type Float64Slice

type Float64Slice []float64

Float64Slice implements Interface for a []float64, sorting in increasing order, with not-a-number (NaN) values ordered before other values.

func (Float64Slice) Len

func (x Float64Slice) Len() int

func (Float64Slice) Less

func (x Float64Slice) Less(i, j int) bool

Less reports whether x[i] should be ordered before x[j], as required by the sort Interface. Note that floating-point comparison by itself is not a transitive relation: it does not report a consistent ordering for not-a-number (NaN) values. This implementation of Less places NaN values before any others, by using:

x[i] < x[j] || (math.IsNaN(x[i]) && !math.IsNaN(x[j]))

func (Float64Slice) Sort

func (x Float64Slice) Sort()

Sort is a convenience method: x.Sort() calls Sort(x).

func (Float64Slice) Swap

func (x Float64Slice) Swap(i, j int)

type IntSlice

type IntSlice []int

IntSlice implements Interface for a []int, sorting in increasing order, with not-a-number (NaN) values ordered before other values.

func (IntSlice) Len

func (x IntSlice) Len() int

func (IntSlice) Less

func (x IntSlice) Less(i, j int) bool

Less reports whether x[i] should be ordered before x[j], as required by the sort Interface. Note that floating-point comparison by itself is not a transitive relation: it does not report a consistent ordering for not-a-number (NaN) values. This implementation of Less places NaN values before any others, by using:

x[i] < x[j] || (math.IsNaN(x[i]) && !math.IsNaN(x[j]))

func (IntSlice) Sort

func (x IntSlice) Sort()

Sort is a convenience method: x.Sort() calls Sort(x).

func (IntSlice) Swap

func (x IntSlice) Swap(i, j int)

type MMat3

type MMat3 mgl64.Mat3

func NewMMat3

func NewMMat3() *MMat3

func NewMMat3ByValues

func NewMMat3ByValues(m11, m12, m13, m21, m22, m23, m31, m32, m33 float64) *MMat3

func (*MMat3) Copy

func (m *MMat3) Copy() *MMat3

func (*MMat3) IsIdent

func (m *MMat3) IsIdent() bool

IsIdent

func (*MMat3) IsZero

func (m *MMat3) IsZero() bool

IsZero

func (*MMat3) Mul

func (m1 *MMat3) Mul(m2 *MMat3)

Mul は行列の掛け算を行います

func (*MMat3) NearEquals

func (m *MMat3) NearEquals(other *MMat3, tolerance float64) bool

func (*MMat3) String

func (m *MMat3) String() string

String

type MMat4

type MMat4 mgl64.Mat4

func NewMMat4

func NewMMat4() *MMat4

func NewMMat4ByValues

func NewMMat4ByValues(m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44 float64) *MMat4

func NewMMat4FromAxisAngle

func NewMMat4FromAxisAngle(axis *MVec3, angle float64) *MMat4

func NewMMat4FromLookAt

func NewMMat4FromLookAt(eye, center, up *MVec3) *MMat4

func (*MMat4) AxisX

func (mat *MMat4) AxisX() *MVec3

func (*MMat4) AxisY

func (mat *MMat4) AxisY() *MVec3

func (*MMat4) AxisZ

func (mat *MMat4) AxisZ() *MVec3

func (*MMat4) ClampIfVerySmall

func (mat *MMat4) ClampIfVerySmall() *MMat4

ClampIfVerySmall ベクトルの各要素がとても小さい場合、ゼロを設定する

func (*MMat4) Copy

func (m *MMat4) Copy() *MMat4

func (*MMat4) Det

func (m *MMat4) Det() float64

func (*MMat4) Inverse

func (m *MMat4) Inverse() *MMat4

逆行列

func (*MMat4) Inverted

func (mat *MMat4) Inverted() *MMat4

func (*MMat4) IsIdent

func (m *MMat4) IsIdent() bool

IsIdent

func (*MMat4) IsZero

func (m *MMat4) IsZero() bool

IsZero

func (*MMat4) Mat3

func (mat *MMat4) Mat3() *MMat3

func (*MMat4) Mul

func (m1 *MMat4) Mul(m2 *MMat4) *MMat4

Mul は行列の掛け算を行います

func (*MMat4) MulScalar

func (mat *MMat4) MulScalar(v float64) *MMat4

func (*MMat4) MulVec3

func (mat *MMat4) MulVec3(other *MVec3) *MVec3

MulVec3 multiplies v (converted to a vec4 as (v_1, v_2, v_3, 1)) with mat and divides the result by w. Returns a new vec3.

func (*MMat4) Muled

func (m1 *MMat4) Muled(m2 *MMat4) *MMat4

func (*MMat4) MuledScalar

func (mat *MMat4) MuledScalar(v float64) *MMat4

func (*MMat4) NearEquals

func (m *MMat4) NearEquals(other *MMat4, tolerance float64) bool

NearEquals

func (*MMat4) Quaternion

func (mat *MMat4) Quaternion() *MQuaternion

func (*MMat4) Rotate

func (mat *MMat4) Rotate(quat *MQuaternion) *MMat4

func (*MMat4) Rotated

func (mat *MMat4) Rotated(quat *MQuaternion) *MMat4

func (*MMat4) Scale

func (mat *MMat4) Scale(s *MVec3) *MMat4

func (*MMat4) Scaled

func (mat *MMat4) Scaled(s *MVec3) *MMat4

func (*MMat4) Scaling

func (mat *MMat4) Scaling() *MVec3

func (*MMat4) String

func (m *MMat4) String() string

String

func (*MMat4) Trace

func (mat *MMat4) Trace() float64

Trace returns the trace value for the matrix.

func (*MMat4) Trace3

func (mat *MMat4) Trace3() float64

Trace3 returns the trace value for the 3x3 sub-matrix.

func (*MMat4) Translate

func (mat *MMat4) Translate(v *MVec3) *MMat4

Translate adds v to the translation part of the matrix.

func (*MMat4) Translated

func (mat *MMat4) Translated(v *MVec3) *MMat4

func (*MMat4) Translation

func (mat *MMat4) Translation() *MVec3

行列の移動情報

func (*MMat4) Transpose

func (mat *MMat4) Transpose() *MMat4

Transpose transposes the matrix.

type MQuaternion

type MQuaternion mgl64.Quat

func NewMQuaternion

func NewMQuaternion() *MQuaternion

func NewMQuaternionByValues

func NewMQuaternionByValues(x, y, z, w float64) *MQuaternion

NewMQuaternionByValuesOriginal は、指定された値でクォータニオンを作成します。 ただし、強制的に最短距離クォータニオンにはしません

func NewMQuaternionByValuesShort

func NewMQuaternionByValuesShort(x, y, z, w float64) *MQuaternion

指定された値でクォータニオンを作成します。 ただし必ず最短距離クォータニオンにします

func NewMQuaternionFromAxes

func NewMQuaternionFromAxes(xAxis, yAxis, zAxis *MVec3) *MQuaternion

NewMQuaternionFromAxesは、3つの軸ベクトルからクォータニオンを作成します。

func NewMQuaternionFromAxisAngles

func NewMQuaternionFromAxisAngles(axis *MVec3, angle float64) *MQuaternion

NewMQuaternionFromAxisAngles は、軸周りの回転を表す四元数を返します。

func NewMQuaternionFromAxisAnglesRotate

func NewMQuaternionFromAxisAnglesRotate(axis *MVec3, angle float64) *MQuaternion

NewMQuaternionFromAxisAnglesRotate は、軸周りの回転を表す四元数を返します。

func NewMQuaternionFromDegrees

func NewMQuaternionFromDegrees(xPitch, yHead, zRoll float64) *MQuaternion

NewMQuaternionFromDegreesは、オイラー角(度)回転を表す四元数を返します。

func NewMQuaternionFromDirection

func NewMQuaternionFromDirection(direction *MVec3, up *MVec3) *MQuaternion

NewMQuaternionFromDirectionは、軸と角度からクォータニオンに変換します。

func NewMQuaternionFromRadians

func NewMQuaternionFromRadians(xPitch, yHead, zRoll float64) *MQuaternion

NewMQuaternionFromRadiansは、オイラー角(ラジアン)回転を表す四元数を返します。

func NewMQuaternionRotate

func NewMQuaternionRotate(fromV, toV *MVec3) *MQuaternion

NewMQuaternionRotateはfromベクトルからtoベクトルまでの回転量を計算します。

func (*MQuaternion) Copy

func (qq *MQuaternion) Copy() *MQuaternion

Copyはクォータニオンのコピーを返します。

func (*MQuaternion) Dot

func (quat *MQuaternion) Dot(other *MQuaternion) float64

Dotは2つのクォータニオンの内積を返します。

func (*MQuaternion) GetW

func (v *MQuaternion) GetW() float64

GetW returns the value of the W coordinate

func (*MQuaternion) GetX

func (v *MQuaternion) GetX() float64

GetX returns the value of the X coordinate

func (*MQuaternion) GetXYZ

func (v *MQuaternion) GetXYZ() *MVec3

func (*MQuaternion) GetY

func (v *MQuaternion) GetY() float64

GetY returns the value of the Y coordinate

func (*MQuaternion) GetZ

func (v *MQuaternion) GetZ() float64

GetZ returns the value of the Z coordinate

func (*MQuaternion) Inverse

func (quat *MQuaternion) Inverse() *MQuaternion

Inverseは、クォータニオンを反転させます。

func (*MQuaternion) Inverted

func (quat *MQuaternion) Inverted() *MQuaternion

Invertedは反転したクォータニオンを返します。

func (*MQuaternion) IsIdent

func (quat *MQuaternion) IsIdent() bool

func (*MQuaternion) IsShortestRotation

func (quat *MQuaternion) IsShortestRotation(other *MQuaternion) bool

IsShortestRotationは、a から b への回転が可能な限り最短の回転かどうかを返します。 (quatの向きから他の向きへの回転には2つの方向があります)

func (*MQuaternion) IsUnitQuat

func (quat *MQuaternion) IsUnitQuat(tolerance float64) bool

IsUnitQuatは、クォータニオンが単位クォータニオンの許容範囲内にあるかどうかを返します。

func (*MQuaternion) Length

func (quat *MQuaternion) Length() float64

Lengthはクォータニオンの長さ(ノルム)を返します。

func (*MQuaternion) Lerp

func (q *MQuaternion) Lerp(other *MQuaternion, t float64) *MQuaternion

func (*MQuaternion) MMD

func (v *MQuaternion) MMD() *MQuaternion

MMD MMD(MikuMikuDance)座標系に変換されたクォータニオンベクトルを返します

func (*MQuaternion) Mul

func (q1 *MQuaternion) Mul(q2 *MQuaternion) *MQuaternion

Mulは、クォータニオンの積を返します。

func (*MQuaternion) MulShort

func (q1 *MQuaternion) MulShort(q2 *MQuaternion) *MQuaternion

Mulは、クォータニオンの積を返します。

func (*MQuaternion) MulVec3

func (quat *MQuaternion) MulVec3(v *MVec3) *MVec3

MulVec3は、ベクトルvをクォータニオンで回転させた結果の新しいベクトルを返します。

func (*MQuaternion) Muled

func (q1 *MQuaternion) Muled(q2 *MQuaternion) *MQuaternion

func (*MQuaternion) MuledScalar

func (quat *MQuaternion) MuledScalar(factor float64) *MQuaternion

MuledScalarはクォータニオンにスカラーを掛け算します。

func (*MQuaternion) MuledShort

func (q1 *MQuaternion) MuledShort(q2 *MQuaternion) *MQuaternion

func (*MQuaternion) NearEquals

func (quat *MQuaternion) NearEquals(other *MQuaternion, epsilon float64) bool

NearEqualsは2つのクォータニオンがほぼ等しいかどうかを判定します。

func (*MQuaternion) Negate

func (quat *MQuaternion) Negate() *MQuaternion

Negateはクォータニオンを反転する。

func (*MQuaternion) Negated

func (quat *MQuaternion) Negated() *MQuaternion

Negatedは反転したクォータニオンを返します。

func (*MQuaternion) Norm

func (quat *MQuaternion) Norm() float64

Normはクォータニオンのノルム値を返します。

func (*MQuaternion) Normalize

func (quat *MQuaternion) Normalize() *MQuaternion

Normalizeは、単位四位数に正規化する。

func (*MQuaternion) Normalized

func (quat *MQuaternion) Normalized() *MQuaternion

Normalizedは、単位を4進数に正規化したコピーを返す。

func (*MQuaternion) SeparateByAxis

func (quat *MQuaternion) SeparateByAxis(globalAxis *MVec3) (*MQuaternion, *MQuaternion, *MQuaternion)

SeparateByAxisは、グローバル軸に基づいてクォータニオンを3つのクォータニオン(x, y, z)に分割します。

func (*MQuaternion) SeparateTwistByAxis

func (quat *MQuaternion) SeparateTwistByAxis(globalAxis *MVec3) (*MQuaternion, *MQuaternion)

SeparateByAxisは、グローバル軸に基づいてクォータニオンを2つのクォータニオン(捩りとそれ以外)に分割します。

func (*MQuaternion) SetShortestRotation

func (quat *MQuaternion) SetShortestRotation(other *MQuaternion) *MQuaternion

SetShortestRotationは、クォータニオンが quat から other の方向への最短回転を表していない場合、そのクォータニオンを否定します。 (quatの向きからotherの向きへの回転には2つの方向があります)

func (*MQuaternion) SetW

func (v *MQuaternion) SetW(w float64)

SetW sets the value of the W coordinate

func (*MQuaternion) SetX

func (v *MQuaternion) SetX(x float64)

SetX sets the value of the X coordinate

func (*MQuaternion) SetXYZ

func (v *MQuaternion) SetXYZ(vec3 *MVec3)

func (*MQuaternion) SetY

func (v *MQuaternion) SetY(y float64)

SetY sets the value of the Y coordinate

func (*MQuaternion) SetZ

func (v *MQuaternion) SetZ(z float64)

SetZ sets the value of the Z coordinate

func (*MQuaternion) Shorten

func (quat *MQuaternion) Shorten() *MQuaternion

Shortenは、最短回転に変換します。

func (*MQuaternion) Slerp

func (a *MQuaternion) Slerp(b *MQuaternion, t float64) *MQuaternion

Slerpはt (0,1)におけるaとbの間の球面線形補間クォータニオンを返します。 See http://en.wikipedia.org/wiki/Slerp

func (*MQuaternion) String

func (v *MQuaternion) String() string

String T の文字列表現を返します。

func (*MQuaternion) ToAxisAngle

func (quat *MQuaternion) ToAxisAngle() (*MVec3, float64)

ToAxisAngleは、クォータニオンを軸と角度に変換します。

func (*MQuaternion) ToDegree

func (quat *MQuaternion) ToDegree() float64

ToDegreeは、クォータニオンを度に変換します。

func (*MQuaternion) ToDegrees

func (quat *MQuaternion) ToDegrees() *MVec3

ToDegreesは、クォータニオンのオイラー角(度)回転を返します。

func (*MQuaternion) ToFixedAxisRotation

func (quat *MQuaternion) ToFixedAxisRotation(fixedAxis *MVec3) *MQuaternion

ToFixedAxisRotationは軸制限されたクォータニオンの回転を計算します。

func (*MQuaternion) ToMMDDegrees

func (quat *MQuaternion) ToMMDDegrees() *MVec3

ToDegreesは、クォータニオンのオイラー角(度)回転を返します。

func (*MQuaternion) ToMat4

func (v *MQuaternion) ToMat4() *MMat4

ToMat4はクォータニオンを4x4行列に変換します。

func (*MQuaternion) ToRadian

func (quat *MQuaternion) ToRadian() float64

ToRadianは、クォータニオンをラジアンに変換します。

func (*MQuaternion) ToRadians

func (v *MQuaternion) ToRadians() *MVec3

ToRadiansは、クォータニオンを三軸のオイラー角(ラジアン)回転を返します。

func (*MQuaternion) ToRadiansWithGimbal

func (v *MQuaternion) ToRadiansWithGimbal(axisIndex int) (*MVec3, bool)

ToRadiansWithGimbalは、クォータニオンを三軸のオイラー角(ラジアン)回転を返します。 ジンバルロックが発生しているか否かのフラグも返します

func (*MQuaternion) ToSignedDegree

func (quat *MQuaternion) ToSignedDegree() float64

ToSignedDegreeは、符号付き角度に変換します。

func (*MQuaternion) ToSignedRadian

func (quat *MQuaternion) ToSignedRadian() float64

ToSignedRadianは、符号付きラジアンに変換します。

func (*MQuaternion) ToTheta

func (quat *MQuaternion) ToTheta(v *MQuaternion) float64

ToThetaは、自分ともうひとつの値vとのtheta(変位量)を返します。

func (*MQuaternion) Vec3

func (quat *MQuaternion) Vec3() *MVec3

Vec3は、クォータニオンのベクトル部分を返します。

func (*MQuaternion) Vec4

func (quat *MQuaternion) Vec4() *MVec4

Vec4は四元数をvec4.Tに変換する

func (*MQuaternion) Vector

func (v *MQuaternion) Vector() []float64

Vectorはクォータニオンをベクトルに変換します。

type MRect

type MRect struct {
	Min *MVec2
	Max *MVec2
}

func NewMRect

func NewMRect() MRect

func (*MRect) Area

func (rect *MRect) Area() float64

Area calculates the area of the rectangle.

func (*MRect) Contains

func (rect *MRect) Contains(other *MRect) bool

Contains returns if other Rect is contained within the rectangle.

func (*MRect) ContainsPoint

func (rect *MRect) ContainsPoint(p *MVec2) bool

ContainsPoint returns if a point is contained within the rectangle.

func (MRect) String

func (v MRect) String() string

String は MRect の文字列表現を返します。

type MRotation

type MRotation struct {
	// contains filtered or unexported fields
}

func NewRotation

func NewRotation() *MRotation

func NewRotationFromDegrees

func NewRotationFromDegrees(vDegrees *MVec3) *MRotation

NewRotationFromDegrees は度数角度からで回転を表すモデルを生成します。

func NewRotationFromQuaternion

func NewRotationFromQuaternion(vQuaternion *MQuaternion) *MRotation

NewRotationFromQuaternion はクォータニオンからで回転を表すモデルを生成します。

func NewRotationFromRadians

func NewRotationFromRadians(vRadians *MVec3) *MRotation

NewRotationFromRadians はラジアン角度からで回転を表すモデルを生成します。

func (*MRotation) Copy

func (rot *MRotation) Copy() *MRotation

Copy

func (*MRotation) GetDegrees

func (m *MRotation) GetDegrees() *MVec3

func (*MRotation) GetDegreesMMD

func (m *MRotation) GetDegreesMMD() *MVec3

func (*MRotation) GetQuaternion

func (m *MRotation) GetQuaternion() *MQuaternion

func (*MRotation) GetRadians

func (m *MRotation) GetRadians() *MVec3

func (*MRotation) GetRadiansMMD

func (m *MRotation) GetRadiansMMD() *MVec3

func (*MRotation) Mul

func (rot *MRotation) Mul(v *MRotation)

Mul

func (*MRotation) SetDegrees

func (m *MRotation) SetDegrees(v *MVec3)

func (*MRotation) SetQuaternion

func (m *MRotation) SetQuaternion(v *MQuaternion)

func (*MRotation) SetRadians

func (m *MRotation) SetRadians(v *MVec3)

func (*MRotation) String

func (rot *MRotation) String() string

type MVec2

type MVec2 mgl64.Vec2

func Bezier

func Bezier(t float64, p0, p1, p2, p3 *MVec2) *MVec2

func LerpVec2

func LerpVec2(v1, v2 *MVec2, t float64) *MVec2

線形補間

func NewMVec2

func NewMVec2() *MVec2

func StdMeanVec2

func StdMeanVec2(values []MVec2, err float64) *MVec2

標準偏差を加味したmean処理

func (*MVec2) Abs

func (v *MVec2) Abs() *MVec2

Abs ベクトルの各要素の絶対値を返します

func (*MVec2) Absed

func (v *MVec2) Absed() *MVec2

Absed ベクトルの各要素の絶対値を返します

func (*MVec2) Add

func (v *MVec2) Add(other *MVec2) *MVec2

Add ベクトルに他のベクトルを加算します

func (*MVec2) AddScalar

func (v *MVec2) AddScalar(s float64) *MVec2

AddScalar ベクトルの各要素にスカラーを加算します

func (*MVec2) AddX

func (v *MVec2) AddX(x float64)

func (*MVec2) AddY

func (v *MVec2) AddY(y float64)

func (*MVec2) Added

func (v *MVec2) Added(other *MVec2) *MVec2

Added ベクトルに他のベクトルを加算した結果を返します

func (*MVec2) AddedScalar

func (v *MVec2) AddedScalar(s float64) *MVec2

func (*MVec2) Angle

func (a *MVec2) Angle(b *MVec2) float64

Angle ベクトルの角度(ラジアン角度)を返します

func (*MVec2) Clamp

func (v *MVec2) Clamp(min, max *MVec2) *MVec2

Clamp ベクトルの各要素を指定された範囲内にクランプします

func (*MVec2) Clamp01

func (v *MVec2) Clamp01() *MVec2

Clamp01 ベクトルの各要素を0.0~1.0の範囲内にクランプします

func (*MVec2) ClampIfVerySmall

func (v *MVec2) ClampIfVerySmall() *MVec2

ClampIfVerySmall ベクトルの各要素がとても小さい場合、ゼロを設定する

func (*MVec2) Clamped

func (v *MVec2) Clamped(min, max *MVec2) *MVec2

Clamped ベクトルの各要素を指定された範囲内にクランプした結果を返します

func (*MVec2) Clamped01

func (v *MVec2) Clamped01() *MVec2

Clamped01 ベクトルの各要素を0.0~1.0の範囲内にクランプした結果を返します

func (*MVec2) Copy

func (v *MVec2) Copy() *MVec2

Copy

func (*MVec2) Cross

func (v *MVec2) Cross(other *MVec2) *MVec2

Cross ベクトルの外積を返します

func (*MVec2) Degree

func (v *MVec2) Degree(other *MVec2) float64

Degree ベクトルの角度(度数)を返します

func (*MVec2) Distance

func (v *MVec2) Distance(other *MVec2) float64

func (*MVec2) Div

func (v *MVec2) Div(other *MVec2) *MVec2

Div ベクトルの各要素を他のベクトルの各要素で除算します

func (*MVec2) DivScalar

func (v *MVec2) DivScalar(s float64) *MVec2

DivScalar ベクトルの各要素をスカラーで除算します

func (*MVec2) Dived

func (v *MVec2) Dived(other *MVec2) *MVec2

Dived ベクトルの各要素を他のベクトルの各要素で除算した結果を返します

func (*MVec2) DivedScalar

func (v *MVec2) DivedScalar(s float64) *MVec2

DivedScalar ベクトルの各要素をスカラーで除算した結果を返します

func (*MVec2) Dot

func (v *MVec2) Dot(other *MVec2) float64

Dot ベクトルの内積を返します

func (*MVec2) Equals

func (v *MVec2) Equals(other *MVec2) bool

Equal ベクトルが他のベクトルと等しいかどうかをチェックします

func (*MVec2) GetX

func (v *MVec2) GetX() float64

GetX returns the value of the X coordinate

func (*MVec2) GetY

func (v *MVec2) GetY() float64

GetY returns the value of the Y coordinate

func (*MVec2) GreaterThan

func (v *MVec2) GreaterThan(other *MVec2) bool

GreaterThan ベクトルが他のベクトルより大きいかどうかをチェックします (>)

func (*MVec2) GreaterThanOrEquals

func (v *MVec2) GreaterThanOrEquals(other *MVec2) bool

GreaterThanOrEqual ベクトルが他のベクトル以上かどうかをチェックします (>=)

func (*MVec2) Hash

func (v *MVec2) Hash() uint64

Hash ベクトルのハッシュ値を計算します

func (*MVec2) Inverse

func (v *MVec2) Inverse() *MVec2

Inverse ベクトルの各要素の符号を反転します (-v)

func (*MVec2) Inverted

func (v *MVec2) Inverted() *MVec2

Inverted ベクトルの各要素の符号を反転した結果を返します (-v)

func (*MVec2) IsZero

func (v *MVec2) IsZero() bool

IsZero ベクトルがゼロベクトルかどうかをチェックします

func (*MVec2) Length

func (v *MVec2) Length() float64

Length ベクトルの長さを返します

func (*MVec2) LengthSqr

func (v *MVec2) LengthSqr() float64

LengthSqr ベクトルの長さの2乗を返します

func (*MVec2) LessThan

func (v *MVec2) LessThan(other *MVec2) bool

LessThan ベクトルが他のベクトルより小さいかどうかをチェックします (<)

func (*MVec2) LessThanOrEquals

func (v *MVec2) LessThanOrEquals(other *MVec2) bool

LessThanOrEqual ベクトルが他のベクトル以下かどうかをチェックします (<=)

func (*MVec2) MMD

func (v *MVec2) MMD() *MVec2

MMD MMD(MikuMikuDance)座標系に変換された2次元ベクトルを返します

func (*MVec2) Max

func (v *MVec2) Max() *MVec2

Max ベクトルの各要素の最大値を返します

func (*MVec2) Min

func (v *MVec2) Min() *MVec2

Min ベクトルの各要素の最小値をTの各要素に設定して返します

func (*MVec2) Mul

func (v *MVec2) Mul(other *MVec2) *MVec2

Mul ベクトルの各要素に他のベクトルの各要素を乗算します

func (*MVec2) MulScalar

func (v *MVec2) MulScalar(s float64) *MVec2

MulScalar ベクトルの各要素にスカラーを乗算します

func (*MVec2) Muled

func (v *MVec2) Muled(other *MVec2) *MVec2

Muled ベクトルの各要素に他のベクトルの各要素を乗算した結果を返します

func (*MVec2) MuledScalar

func (v *MVec2) MuledScalar(s float64) *MVec2

func (*MVec2) NearEquals

func (v *MVec2) NearEquals(other *MVec2, epsilon float64) bool

NearEquals ベクトルが他のベクトルとほぼ等しいかどうかをチェックします

func (*MVec2) Normalize

func (v *MVec2) Normalize() *MVec2

Normalize ベクトルを正規化します

func (*MVec2) Normalized

func (v *MVec2) Normalized() *MVec2

Normalized ベクトルを正規化した結果を返します

func (*MVec2) NotEquals

func (v *MVec2) NotEquals(other MVec2) bool

NotEqual ベクトルが他のベクトルと等しくないかどうかをチェックします

func (*MVec2) One

func (v *MVec2) One() *MVec2

One 0を1に変える

func (*MVec2) Rotate

func (v *MVec2) Rotate(angle float64) *MVec2

func (*MVec2) Rotate90DegLeft

func (v *MVec2) Rotate90DegLeft() *MVec2

Rotate90DegLeft ベクトルを90度左回転します

func (*MVec2) Rotate90DegRight

func (v *MVec2) Rotate90DegRight() *MVec2

Rotate90DegRight ベクトルを90度右回転します

func (*MVec2) RotateAroundPoint

func (v *MVec2) RotateAroundPoint(point *MVec2, angle float64) *MVec2

RotateAroundPoint ベクトルを指定された点を中心に回転します

func (*MVec2) Rotated

func (v *MVec2) Rotated(angle float64) *MVec2

Rotated ベクトルを回転します

func (*MVec2) Round

func (v *MVec2) Round() *MVec2

func (*MVec2) SetX

func (v *MVec2) SetX(x float64)

SetX sets the value of the X coordinate

func (*MVec2) SetY

func (v *MVec2) SetY(y float64)

SetY sets the value of the Y coordinate

func (*MVec2) String

func (v *MVec2) String() string

String 文字列表現を返します。

func (*MVec2) Sub

func (v *MVec2) Sub(other *MVec2) *MVec2

Sub ベクトルから他のベクトルを減算します

func (*MVec2) SubScalar

func (v *MVec2) SubScalar(s float64) *MVec2

SubScalar ベクトルの各要素からスカラーを減算します

func (*MVec2) Subed

func (v *MVec2) Subed(other *MVec2) *MVec2

Subed ベクトルから他のベクトルを減算した結果を返します

func (*MVec2) SubedScalar

func (v *MVec2) SubedScalar(s float64) *MVec2

func (*MVec2) Vector

func (v *MVec2) Vector() []float64

Vector

type MVec3

type MVec3 mgl64.Vec3

func CalculateBoundingBox

func CalculateBoundingBox(points ...*MVec3) (minPos, maxPos *MVec3)

直方体の境界を計算する関数

func GetVertexLocalPositions

func GetVertexLocalPositions(vertexPositions []*MVec3, startBonePosition *MVec3, endBonePosition *MVec3) []*MVec3

ボーンから見た頂点ローカル位置を求める vertexPositions: グローバル頂点位置 startBonePosition: 親ボーン位置 endBonePosition: 子ボーン位置

func IntersectLinePlane

func IntersectLinePlane(near, far, forward, right, up, p *MVec3) *MVec3

2点間のベクトルと、点Pを含むカメラ平面と平行な面、との交点を計算

func NewMVec3

func NewMVec3() *MVec3

func StdMeanVec3

func StdMeanVec3(values []MVec3, err float64) *MVec3

標準偏差を加味したmean処理

func (*MVec3) Abs

func (v *MVec3) Abs() *MVec3

Abs ベクトルの各要素の絶対値を返します

func (*MVec3) Absed

func (v *MVec3) Absed() *MVec3

Absed ベクトルの各要素の絶対値を返します

func (*MVec3) Add

func (v *MVec3) Add(other *MVec3) *MVec3

Add ベクトルに他のベクトルを加算します

func (*MVec3) AddScalar

func (v *MVec3) AddScalar(s float64) *MVec3

AddScalar ベクトルの各要素にスカラーを加算します

func (*MVec3) AddX

func (v *MVec3) AddX(x float64)

func (*MVec3) AddY

func (v *MVec3) AddY(y float64)

func (*MVec3) AddZ

func (v *MVec3) AddZ(z float64)

func (*MVec3) Added

func (v *MVec3) Added(other *MVec3) *MVec3

Added ベクトルに他のベクトルを加算した結果を返します

func (*MVec3) AddedScalar

func (v *MVec3) AddedScalar(s float64) *MVec3

func (*MVec3) Angle

func (v *MVec3) Angle(other *MVec3) float64

Angle ベクトルの角度(ラジアン角度)を返します

func (*MVec3) Clamp

func (v *MVec3) Clamp(min, max *MVec3) *MVec3

Clamp ベクトルの各要素を指定された範囲内にクランプします

func (*MVec3) Clamp01

func (v *MVec3) Clamp01() *MVec3

Clamp01 ベクトルの各要素を0.0~1.0の範囲内にクランプします

func (*MVec3) ClampIfVerySmall

func (v *MVec3) ClampIfVerySmall() *MVec3

ClampIfVerySmall ベクトルの各要素がとても小さい場合、ゼロを設定する

func (*MVec3) Clamped

func (v *MVec3) Clamped(min, max *MVec3) *MVec3

Clamped ベクトルの各要素を指定された範囲内にクランプした結果を返します

func (*MVec3) Clamped01

func (v *MVec3) Clamped01() *MVec3

Clamped01 ベクトルの各要素を0.0~1.0の範囲内にクランプした結果を返します

func (*MVec3) Copy

func (v *MVec3) Copy() *MVec3

Copy

func (*MVec3) Cross

func (v1 *MVec3) Cross(v2 *MVec3) *MVec3

Cross ベクトルの外積を返します

func (*MVec3) Degree

func (v *MVec3) Degree(other *MVec3) float64

Degree ベクトルの角度(度数)を返します

func (*MVec3) Distance

func (v *MVec3) Distance(other *MVec3) float64

func (*MVec3) Distances

func (v *MVec3) Distances(others []*MVec3) []float64

func (*MVec3) Div

func (v *MVec3) Div(other *MVec3) *MVec3

Div ベクトルの各要素を他のベクトルの各要素で除算します

func (*MVec3) DivScalar

func (v *MVec3) DivScalar(s float64) *MVec3

DivScalar ベクトルの各要素をスカラーで除算します

func (*MVec3) DivX

func (v *MVec3) DivX(x float64)

func (*MVec3) DivY

func (v *MVec3) DivY(y float64)

func (*MVec3) DivZ

func (v *MVec3) DivZ(z float64)

func (*MVec3) Dived

func (v *MVec3) Dived(other *MVec3) *MVec3

Dived ベクトルの各要素を他のベクトルの各要素で除算した結果を返します

func (*MVec3) DivedScalar

func (v *MVec3) DivedScalar(s float64) *MVec3

DivedScalar ベクトルの各要素をスカラーで除算した結果を返します

func (*MVec3) Dot

func (v *MVec3) Dot(other *MVec3) float64

Dot ベクトルの内積を返します

func (*MVec3) Equals

func (v *MVec3) Equals(other *MVec3) bool

Equal ベクトルが他のベクトルと等しいかどうかをチェックします

func (*MVec3) GetX

func (v *MVec3) GetX() float64

GetX returns the value of the X coordinate

func (*MVec3) GetXY

func (v *MVec3) GetXY() *MVec2

func (*MVec3) GetY

func (v *MVec3) GetY() float64

GetY returns the value of the Y coordinate

func (*MVec3) GetZ

func (v *MVec3) GetZ() float64

GetZ returns the value of the Z coordinate

func (*MVec3) GreaterThan

func (v *MVec3) GreaterThan(other *MVec3) bool

GreaterThan ベクトルが他のベクトルより大きいかどうかをチェックします (>)

func (*MVec3) GreaterThanOrEquals

func (v *MVec3) GreaterThanOrEquals(other *MVec3) bool

GreaterThanOrEqual ベクトルが他のベクトル以上かどうかをチェックします (>=)

func (*MVec3) Hash

func (v *MVec3) Hash() uint64

Hash ベクトルのハッシュ値を計算します

func (*MVec3) Interpolate

func (v *MVec3) Interpolate(other *MVec3, t float64) *MVec3

Interpolate ベクトルの線形補間を行います

func (*MVec3) Inverse

func (v *MVec3) Inverse() *MVec3

Inverse ベクトルの各要素の符号を反転します (-v)

func (*MVec3) Inverted

func (v *MVec3) Inverted() *MVec3

Inverted ベクトルの各要素の符号を反転した結果を返します (-v)

func (*MVec3) IsOne

func (v *MVec3) IsOne() bool

IsZero ベクトルが1ベクトルかどうかをチェックします

func (*MVec3) IsOnlyX

func (v *MVec3) IsOnlyX() bool

func (*MVec3) IsOnlyY

func (v *MVec3) IsOnlyY() bool

func (*MVec3) IsOnlyZ

func (v *MVec3) IsOnlyZ() bool

func (*MVec3) IsPointInsideBox

func (point *MVec3) IsPointInsideBox(min, max *MVec3) bool

点が直方体内にあるかどうかを判定する関数

func (*MVec3) IsZero

func (v *MVec3) IsZero() bool

IsZero ベクトルがゼロベクトルかどうかをチェックします

func (*MVec3) Length

func (v *MVec3) Length() float64

Length ベクトルの長さを返します

func (*MVec3) LengthSqr

func (v *MVec3) LengthSqr() float64

LengthSqr ベクトルの長さの2乗を返します

func (*MVec3) Lerp

func (v1 *MVec3) Lerp(v2 *MVec3, t float64) *MVec3

線形補間

func (*MVec3) LessThan

func (v *MVec3) LessThan(other *MVec3) bool

LessThan ベクトルが他のベクトルより小さいかどうかをチェックします (<)

func (*MVec3) LessThanOrEquals

func (v *MVec3) LessThanOrEquals(other *MVec3) bool

LessThanOrEqual ベクトルが他のベクトル以下かどうかをチェックします (<=)

func (*MVec3) MMD

func (v *MVec3) MMD() *MVec3

MMD MMD(MikuMikuDance)座標系に変換された3次元ベクトルを返します

func (*MVec3) Max

func (v *MVec3) Max() *MVec3

Max ベクトルの各要素の最大値を返します

func (*MVec3) Min

func (v *MVec3) Min() *MVec3

Min ベクトルの各要素の最小値をTの各要素に設定して返します

func (*MVec3) Mul

func (v *MVec3) Mul(other *MVec3) *MVec3

Mul ベクトルの各要素に他のベクトルの各要素を乗算します

func (*MVec3) MulScalar

func (v *MVec3) MulScalar(s float64) *MVec3

MulScalar ベクトルの各要素にスカラーを乗算します

func (*MVec3) MulX

func (v *MVec3) MulX(x float64)

func (*MVec3) MulY

func (v *MVec3) MulY(y float64)

func (*MVec3) MulZ

func (v *MVec3) MulZ(z float64)

func (*MVec3) Muled

func (v *MVec3) Muled(other *MVec3) *MVec3

Muled ベクトルの各要素に他のベクトルの各要素を乗算した結果を返します

func (*MVec3) MuledScalar

func (v *MVec3) MuledScalar(s float64) *MVec3

func (*MVec3) NearEquals

func (v *MVec3) NearEquals(other *MVec3, epsilon float64) bool

NearEquals ベクトルが他のベクトルとほぼ等しいかどうかをチェックします

func (*MVec3) Normalize

func (v *MVec3) Normalize() *MVec3

Normalize ベクトルを正規化します

func (*MVec3) Normalized

func (v *MVec3) Normalized() *MVec3

Normalized ベクトルを正規化した結果を返します

func (*MVec3) NotEquals

func (v *MVec3) NotEquals(other MVec3) bool

NotEqual ベクトルが他のベクトルと等しくないかどうかをチェックします

func (*MVec3) One

func (v *MVec3) One() *MVec3

One 0を1に変える

func (*MVec3) Project

func (v *MVec3) Project(other *MVec3) *MVec3

func (*MVec3) Round

func (v *MVec3) Round() *MVec3

func (*MVec3) SetX

func (v *MVec3) SetX(x float64)

SetX sets the value of the X coordinate

func (*MVec3) SetY

func (v *MVec3) SetY(y float64)

SetY sets the value of the Y coordinate

func (*MVec3) SetZ

func (v *MVec3) SetZ(z float64)

SetZ sets the value of the Z coordinate

func (*MVec3) String

func (v *MVec3) String() string

String T の文字列表現を返します。

func (*MVec3) Sub

func (v *MVec3) Sub(other *MVec3) *MVec3

Sub ベクトルから他のベクトルを減算します

func (*MVec3) SubScalar

func (v *MVec3) SubScalar(s float64) *MVec3

SubScalar ベクトルの各要素からスカラーを減算します

func (*MVec3) SubX

func (v *MVec3) SubX(x float64)

func (*MVec3) SubY

func (v *MVec3) SubY(y float64)

func (*MVec3) SubZ

func (v *MVec3) SubZ(z float64)

func (*MVec3) Subed

func (v *MVec3) Subed(other *MVec3) *MVec3

Subed ベクトルから他のベクトルを減算した結果を返します

func (*MVec3) SubedScalar

func (v *MVec3) SubedScalar(s float64) *MVec3

func (*MVec3) ToLocalMatrix4x4

func (v *MVec3) ToLocalMatrix4x4() *MMat4

ToLocalMatrix4x4 自身をローカル軸とした場合の回転行列を取得します

func (*MVec3) ToMat4

func (v *MVec3) ToMat4() *MMat4

func (*MVec3) ToScaleMat4

func (v *MVec3) ToScaleMat4() *MMat4

func (*MVec3) Vec3Diff

func (a *MVec3) Vec3Diff(b *MVec3) *MQuaternion

Vec3Diffは、2つのベクトル間の回転四元数を返します。

func (*MVec3) Vector

func (v *MVec3) Vector() []float64

Vector

type MVec4

type MVec4 mgl64.Vec4

func NewMVec4

func NewMVec4() *MVec4

func StdMeanVec4

func StdMeanVec4(values []MVec4, err float64) *MVec4

標準偏差を加味したmean処理

func (*MVec4) Abs

func (v *MVec4) Abs() *MVec4

Abs ベクトルの各要素の絶対値を返します

func (*MVec4) Absed

func (v *MVec4) Absed() *MVec4

Absed ベクトルの各要素の絶対値を返します

func (*MVec4) Add

func (v *MVec4) Add(other *MVec4) *MVec4

Add ベクトルに他のベクトルを加算します

func (*MVec4) AddScalar

func (v *MVec4) AddScalar(s float64) *MVec4

AddScalar ベクトルの各要素にスカラーを加算します

func (*MVec4) AddW

func (v *MVec4) AddW(w float64)

func (*MVec4) AddX

func (v *MVec4) AddX(x float64)

func (*MVec4) AddY

func (v *MVec4) AddY(y float64)

func (*MVec4) AddZ

func (v *MVec4) AddZ(z float64)

func (*MVec4) Added

func (v *MVec4) Added(other *MVec4) *MVec4

Added ベクトルに他のベクトルを加算した結果を返します

func (*MVec4) AddedScalar

func (v *MVec4) AddedScalar(s float64) *MVec4

func (*MVec4) Angle

func (v *MVec4) Angle(other *MVec4) float64

Angle ベクトルの角度(ラジアン角度)を返します

func (*MVec4) Clamp

func (v *MVec4) Clamp(min, max *MVec4) *MVec4

Clamp ベクトルの各要素を指定された範囲内にクランプします

func (*MVec4) Clamp01

func (v *MVec4) Clamp01() *MVec4

Clamp01 ベクトルの各要素を0.0~1.0の範囲内にクランプします

func (*MVec4) ClampIfVerySmall

func (v *MVec4) ClampIfVerySmall() *MVec4

ClampIfVerySmall ベクトルの各要素がとても小さい場合、ゼロを設定する

func (*MVec4) Clamped

func (v *MVec4) Clamped(min, max *MVec4) *MVec4

Clamped ベクトルの各要素を指定された範囲内にクランプした結果を返します

func (*MVec4) Clamped01

func (v *MVec4) Clamped01() *MVec4

Clamped01 ベクトルの各要素を0.0~1.0の範囲内にクランプした結果を返します

func (*MVec4) Copy

func (v *MVec4) Copy() *MVec4

Copy

func (*MVec4) Cross

func (v *MVec4) Cross(other *MVec4) *MVec4

Cross ベクトルの外積を返します

func (*MVec4) Degree

func (v *MVec4) Degree(other *MVec4) float64

Degree ベクトルの角度(度数)を返します

func (*MVec4) Distance

func (v *MVec4) Distance(other *MVec4) float64

func (*MVec4) Div

func (v *MVec4) Div(other *MVec4) *MVec4

Div ベクトルの各要素を他のベクトルの各要素で除算します

func (*MVec4) DivScalar

func (v *MVec4) DivScalar(s float64) *MVec4

DivScalar ベクトルの各要素をスカラーで除算します

func (*MVec4) DivW

func (v *MVec4) DivW(w float64)

func (*MVec4) DivX

func (v *MVec4) DivX(x float64)

func (*MVec4) DivY

func (v *MVec4) DivY(y float64)

func (*MVec4) DivZ

func (v *MVec4) DivZ(z float64)

func (*MVec4) Dived

func (v *MVec4) Dived(other *MVec4) *MVec4

Dived ベクトルの各要素を他のベクトルの各要素で除算した結果を返します

func (*MVec4) DivedScalar

func (v *MVec4) DivedScalar(s float64) *MVec4

DivedScalar ベクトルの各要素をスカラーで除算した結果を返します

func (*MVec4) DivideByW

func (vec *MVec4) DivideByW() *MVec4

DivideByW divides the first three components (XYZ) by the last one (W).

func (*MVec4) DividedByW

func (vec *MVec4) DividedByW() *MVec4

DividedByW returns a copy of the vector with the first three components (XYZ) divided by the last one (W).

func (*MVec4) Dot

func (v *MVec4) Dot(other *MVec4) float64

Dot ベクトルの内積を返します

func (*MVec4) Equals

func (v *MVec4) Equals(other *MVec4) bool

Equal ベクトルが他のベクトルと等しいかどうかをチェックします

func (*MVec4) GetW

func (v *MVec4) GetW() float64

GetW returns the value of the W coordinate

func (*MVec4) GetX

func (v *MVec4) GetX() float64

GetX returns the value of the X coordinate

func (*MVec4) GetXY

func (v *MVec4) GetXY() *MVec2

func (*MVec4) GetXYZ

func (v *MVec4) GetXYZ() *MVec3

func (*MVec4) GetY

func (v *MVec4) GetY() float64

GetY returns the value of the Y coordinate

func (*MVec4) GetZ

func (v *MVec4) GetZ() float64

GetZ returns the value of the Z coordinate

func (*MVec4) GreaterThan

func (v *MVec4) GreaterThan(other *MVec4) bool

GreaterThan ベクトルが他のベクトルより大きいかどうかをチェックします (>)

func (*MVec4) GreaterThanOrEquals

func (v *MVec4) GreaterThanOrEquals(other *MVec4) bool

GreaterThanOrEqual ベクトルが他のベクトル以上かどうかをチェックします (>=)

func (*MVec4) Hash

func (v *MVec4) Hash() uint64

Hash ベクトルのハッシュ値を計算します

func (*MVec4) Interpolate

func (v *MVec4) Interpolate(other *MVec4, t float64) *MVec4

Interpolate ベクトルの線形補間を行います

func (*MVec4) Inverse

func (v *MVec4) Inverse() *MVec4

Inverse ベクトルの各要素の符号を反転します (-v)

func (*MVec4) Inverted

func (v *MVec4) Inverted() *MVec4

Inverted ベクトルの各要素の符号を反転した結果を返します (-v)

func (*MVec4) IsZero

func (v *MVec4) IsZero() bool

IsZero ベクトルがゼロベクトルかどうかをチェックします

func (*MVec4) Length

func (v *MVec4) Length() float64

Length ベクトルの長さを返します

func (*MVec4) LengthSqr

func (v *MVec4) LengthSqr() float64

LengthSqr ベクトルの長さの2乗を返します

func (*MVec4) Lerp

func (v1 *MVec4) Lerp(v2 *MVec4, t float64) *MVec4

線形補間

func (*MVec4) LessThan

func (v *MVec4) LessThan(other *MVec4) bool

LessThan ベクトルが他のベクトルより小さいかどうかをチェックします (<)

func (*MVec4) LessThanOrEquals

func (v *MVec4) LessThanOrEquals(other *MVec4) bool

LessThanOrEqual ベクトルが他のベクトル以下かどうかをチェックします (<=)

func (*MVec4) MMD

func (v *MVec4) MMD() *MVec4

MMD MMD(MikuMikuDance)座標系に変換された2次元ベクトルを返します

func (*MVec4) Max

func (v *MVec4) Max() *MVec4

Max ベクトルの各要素の最大値を返します

func (*MVec4) Min

func (v *MVec4) Min() *MVec4

Min ベクトルの各要素の最小値をTの各要素に設定して返します

func (*MVec4) Mul

func (v *MVec4) Mul(other *MVec4) *MVec4

Mul ベクトルの各要素に他のベクトルの各要素を乗算します

func (*MVec4) MulScalar

func (v *MVec4) MulScalar(s float64) *MVec4

MulScalar ベクトルの各要素にスカラーを乗算します

func (*MVec4) MulW

func (v *MVec4) MulW(w float64)

func (*MVec4) MulX

func (v *MVec4) MulX(x float64)

func (*MVec4) MulY

func (v *MVec4) MulY(y float64)

func (*MVec4) MulZ

func (v *MVec4) MulZ(z float64)

func (*MVec4) Muled

func (v *MVec4) Muled(other *MVec4) *MVec4

Muled ベクトルの各要素に他のベクトルの各要素を乗算した結果を返します

func (*MVec4) MuledScalar

func (v *MVec4) MuledScalar(s float64) *MVec4

func (*MVec4) NearEquals

func (v *MVec4) NearEquals(other *MVec4, epsilon float64) bool

NearEquals ベクトルが他のベクトルとほぼ等しいかどうかをチェックします

func (*MVec4) Normalize

func (v *MVec4) Normalize() *MVec4

Normalize ベクトルを正規化します

func (*MVec4) Normalized

func (v *MVec4) Normalized() *MVec4

Normalized ベクトルを正規化した結果を返します

func (*MVec4) NotEquals

func (v *MVec4) NotEquals(other MVec4) bool

NotEqual ベクトルが他のベクトルと等しくないかどうかをチェックします

func (*MVec4) One

func (v *MVec4) One() *MVec4

One 0を1に変える

func (*MVec4) Round

func (v *MVec4) Round() *MVec4

func (*MVec4) SetW

func (v *MVec4) SetW(w float64)

SetW sets the value of the W coordinate

func (*MVec4) SetX

func (v *MVec4) SetX(x float64)

SetX sets the value of the X coordinate

func (*MVec4) SetY

func (v *MVec4) SetY(y float64)

SetY sets the value of the Y coordinate

func (*MVec4) SetZ

func (v *MVec4) SetZ(z float64)

SetZ sets the value of the Z coordinate

func (*MVec4) String

func (v *MVec4) String() string

String T の文字列表現を返します。

func (*MVec4) Sub

func (v *MVec4) Sub(other *MVec4) *MVec4

Sub ベクトルから他のベクトルを減算します

func (*MVec4) SubScalar

func (v *MVec4) SubScalar(s float64) *MVec4

SubScalar ベクトルの各要素からスカラーを減算します

func (*MVec4) SubW

func (v *MVec4) SubW(w float64)

func (*MVec4) SubX

func (v *MVec4) SubX(x float64)

func (*MVec4) SubY

func (v *MVec4) SubY(y float64)

func (*MVec4) SubZ

func (v *MVec4) SubZ(z float64)

func (*MVec4) Subed

func (v *MVec4) Subed(other *MVec4) *MVec4

Subed ベクトルから他のベクトルを減算した結果を返します

func (*MVec4) SubedScalar

func (v *MVec4) SubedScalar(s float64) *MVec4

func (*MVec4) Vec3DividedByW

func (vec *MVec4) Vec3DividedByW() *MVec3

Vec3DividedByW returns a vec3.T version of the vector by dividing the first three vector components (XYZ) by the last one (W).

func (*MVec4) Vector

func (v *MVec4) Vector() []float64

Vector

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL