このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

DOMMatrixReadOnly: toFloat32Array() メソッド

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2020年1月.

toFloat32Array()DOMMatrixReadOnly インターフェイスのメソッドで、行列を構成する 16 個の要素すべて (m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, m42, m43, m44) を格納した新しい Float32Array を返します。要素は、列優先順(言い換えれば、第 1 列を上から下へ、次に第 2 列、という順序)で単精度浮動小数点数として配列に格納されます。

倍精度浮動小数点数にする場合は、DOMMatrixReadOnly.toFloat64Array() を参照してください。

構文

js
toFloat32Array()

引数

なし。

返値

Float32Array で、行列の 16 要素の値を持つ配列です。

基本的な使い方

js
const matrix = new DOMMatrixReadOnly();
const float32 = matrix.translate(20, 30, 50).toFloat32Array();
console.log(float32); // Float64Array(16) [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 20, 30, 0, 1 ] ]
console.log(`m41: ${float32[12]}, m42: ${float32[13]}, m43: ${float32[14]}`); // m41: 20, m42: 30, M44: 40

単精度

行列の値にアクセスする方法は複数あります。この例では、行列を 30 度回転させ、 DOMMatrixReadOnly.toJSON() メソッドを使用して回転後の状態を JSON オブジェクトとして、toFloat32Array() メソッドを使用して単精度浮動小数点数配列として保存します。

js
const matrix = new DOMMatrixReadOnly();
const json = matrix.rotate(30).toJSON();
const float32 = matrix.rotate(30).toFloat32Array();

console.log(`a: ${json["a"]}, b: ${json["b"]}`); // a: 0.8660254037844387, b: 0.49999999999999994
console.log(`a: ${float32[0]}, b: ${float32[1]}`); // a: 0.8660253882408142, b: 0.5

仕様書

Specification
Geometry Interfaces Module Level 1
# dom-dommatrixreadonly-tofloat32array

ブラウザーの互換性

関連情報