QVector3D Class

QVector3D クラスは、3D 空間におけるベクトルまたは頂点を表します。詳細...

Header: #include <QVector3D>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

パブリック関数

QVector3D()
QVector3D(QPoint point)
QVector3D(QPointF point)
QVector3D(QVector2D vector)
QVector3D(QVector4D vector)
QVector3D(QVector2D vector, float zpos)
QVector3D(float xpos, float ypos, float zpos)
float distanceToLine(QVector3D point, QVector3D direction) const
float distanceToPlane(QVector3D plane, QVector3D normal) const
float distanceToPlane(QVector3D plane1, QVector3D plane2, QVector3D plane3) const
float distanceToPoint(QVector3D point) const
bool isNull() const
float length() const
float lengthSquared() const
void normalize()
QVector3D normalized() const
QVector3D project(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const
void setX(float x)
void setY(float y)
void setZ(float z)
QPoint toPoint() const
QPointF toPointF() const
QVector2D toVector2D() const
QVector4D toVector4D() const
QVector3D unproject(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const
float x() const
float y() const
float z() const
QVariant operator QVariant() const
QVector3D &operator*=(float factor)
QVector3D &operator*=(QVector3D vector)
QVector3D &operator+=(QVector3D vector)
QVector3D &operator-=(QVector3D vector)
QVector3D &operator/=(QVector3D vector)
QVector3D &operator/=(float divisor)
float &operator[](int i)
float operator[](int i) const

静的パブリックメンバー

QVector3D crossProduct(QVector3D v1, QVector3D v2)
float dotProduct(QVector3D v1, QVector3D v2)
QVector3D normal(QVector3D v1, QVector3D v2)
QVector3D normal(QVector3D v1, QVector3D v2, QVector3D v3)
bool qFuzzyCompare(QVector3D v1, QVector3D v2)
bool operator!=(QVector3D v1, QVector3D v2)
QVector3D operator*(QVector3D v1, QVector3D v2)
QVector3D operator*(QVector3D vector, float factor)
QVector3D operator*(float factor, QVector3D vector)
QVector3D operator+(QVector3D v1, QVector3D v2)
QVector3D operator-(QVector3D v1, QVector3D v2)
QVector3D operator-(QVector3D vector)
QVector3D operator/(QVector3D vector, QVector3D divisor)
QVector3D operator/(QVector3D vector, float divisor)
QDataStream &operator<<(QDataStream &stream, QVector3D vector)
bool operator==(QVector3D v1, QVector3D v2)
QDataStream &operator>>(QDataStream &stream, QVector3D &vector)

詳細説明

ベクトルは、3D表現と描画の主要な構成要素の1つです。これらは3つの有限浮動小数点座標で構成され、伝統的にx、y、zと呼ばれています。

QVector3Dクラスは、3D空間の頂点を表現するためにも使用できます。したがって、頂点クラスを別に用意する必要はありません。

QVector2D,QVector4D,QQuaternionも参照して ください。

メンバ関数ドキュメント

[constexpr noexcept] QVector3D::QVector3D()

ヌル・ベクトル、すなわち座標 (0, 0, 0) を持つベクトルを構築する。

[explicit constexpr noexcept] QVector3D::QVector3D(QPoint point)

2Dpoint から x 座標と y 座標を持ち、z 座標が 0 のベクトルを構築します。

[explicit constexpr noexcept] QVector3D::QVector3D(QPointF point)

2Dpoint から x 座標と y 座標を持ち、z 座標が 0 のベクトルを構築します。

[explicit constexpr noexcept] QVector3D::QVector3D(QVector2D vector)

指定された 2Dvector から 3D ベクトルを構築します。z 座標は 0 に設定される。

toVector2D()も参照してください

[explicit constexpr noexcept] QVector3D::QVector3D(QVector4D vector)

指定された 4Dvector から 3D ベクトルを構築する。w 座標は削除されます。

toVector4D() も参照して ください。

[constexpr noexcept] QVector3D::QVector3D(QVector2D vector, float zpos)

指定された 2Dvector から 3D ベクトルを構築する。z 座標はzpos に設定される。

toVector2D()も参照して ください。

[constexpr noexcept] QVector3D::QVector3D(float xpos, float ypos, float zpos)

座標 (xpos,ypos,zpos) を持つベクトルを構築します。すべてのパラメータは有限でなければなりません。

[static constexpr noexcept] QVector3D QVector3D::crossProduct(QVector3D v1, QVector3D v2)

ベクトルv1v2 の外積を返します。この外積は、v1v2 の平面に垂直なベクトルです。

normal()も参照してください

[noexcept] float QVector3D::distanceToLine(QVector3D point, QVector3D direction) const

point と単位ベクトルdirection で定義される直線からの距離を返します。

direction が NULL ベクトルの場合、それは直線を定義しない。その場合、point からこの頂点までの距離が返される。

distanceToPlane()も参照

[constexpr noexcept] float QVector3D::distanceToPlane(QVector3D plane, QVector3D normal) const

この頂点から、頂点plane と単位ベクトルnormal で定義される平面までの距離を返す。パラメータnormal は単位ベクトルに正規化されているものとする。

戻り値は、頂点が平面より下にある場合は負になり、平面上にある場合は0になります。

normal() およびdistanceToLine()も参照

[noexcept] float QVector3D::distanceToPlane(QVector3D plane1, QVector3D plane2, QVector3D plane3) const

この頂点から、頂点plane1,plane2,plane3 によって定義される平面までの距離を返す。

戻り値は、頂点が平面より下にある場合は負になり、平面上にある場合は0になる。

平面を定義する2つのベクトルは,plane2 -plane1plane3 -plane1 です.

normal() およびdistanceToLine()も参照

[noexcept] float QVector3D::distanceToPoint(QVector3D point) const

この頂点から、頂点point で定義される点までの距離を返します。

distanceToPlane() およびdistanceToLine()も参照

[static constexpr noexcept] float QVector3D::dotProduct(QVector3D v1, QVector3D v2)

v1v2 のドット積を返します。

[constexpr noexcept] bool QVector3D::isNull() const

x, y, z 座標が 0.0 に設定されている場合はtrue を返し、そうでない場合はfalse を返す。

[noexcept] float QVector3D::length() const

原点からのベクトルの長さを返します。

lengthSquared() およびnormalized()も参照してください

[constexpr noexcept] float QVector3D::lengthSquared() const

SquaredLength関数は、原点からのベクトルの長さの2乗を返します。これは、ベクトルとそれ自身との内積と等価です。

length() およびdotProduct() も参照

[static noexcept] QVector3D QVector3D::normal(QVector3D v1, QVector3D v2)

ベクトルv1v2 によってスパンされる平面の単位法線ベクトルを返します。

結果を単位ベクトルに正規化する必要がない場合は、v1v2 の外積を計算するためにcrossProduct() を使用します。

crossProduct() およびdistanceToPlane()も参照

[static noexcept] QVector3D QVector3D::normal(QVector3D v1, QVector3D v2, QVector3D v3)

ベクトルv2 -v1 およびv3 -v1 によってスパンされる平面の単位法線ベクトルを返します。

結果を単位ベクトルに正規化する必要がない場合は、v2 -v1 およびv3 -v1 の外積を計算するためにcrossProduct() を使用します。

crossProduct() およびdistanceToPlane()も参照

[noexcept] void QVector3D::normalize()

現在のベクトルを正規化します。このベクトルが NULL ベクトルであったり、ベクトルの長さが 1 に非常に近かったりする場合は、何も起こりません。

length() およびnormalized()も参照

[noexcept] QVector3D QVector3D::normalized() const

このベクトルの正規化された単位ベクトル形式を返します。

このベクトルが NULL の場合、NULL ベクトルが返されます。ベクトルの長さが 1 に非常に近い場合、ベクトルはそのまま返されます。そうでない場合は、長さ 1 の正規化されたベクトルが返されます。

length() およびnormalize()も参照

QVector3D QVector3D::project(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const

モデルビュー行列modelView, 投影行列projection およびビューポート寸法viewport を用いて,このベクトルのウィンドウ座標をオブジェクト/モデル座標で返します.

クリップから正規化空間へ変換する際、ベクトル成分の w 成分による除算が行われます。w が 0 の場合に 0 で除算されないように、w は 1 に設定されます。

注意: 返されるy座標はOpenGLの向きです。OpenGLは底辺が0であることを期待しますが、Qtでは上辺が0です。

unproject()も参照してください

[constexpr noexcept] void QVector3D::setX(float x)

この点の x 座標を、与えられた有限のx 座標に設定します。

x(),setY(),setZ()も参照

[constexpr noexcept] void QVector3D::setY(float y)

この点の y 座標を、与えられた有限のy 座標に設定します。

y()、setX()、およびsetZ()も参照

[constexpr noexcept] void QVector3D::setZ(float z)

この点の z 座標を、 与えられた有限のz 座標に設定します。

z(),setX(),setY()も参照

[constexpr noexcept] QPoint QVector3D::toPoint() const

この 3D ベクトルをQPoint 形式で返します。z 座標は削除されます。x 座標と y 座標は、最も近い整数に丸められます。

toPointF() およびtoVector2D()も参照

[constexpr noexcept] QPointF QVector3D::toPointF() const

QPointF 形式の 3D ベクトルを返します。z 座標は削除されます。

toPoint() およびtoVector2D()も参照

[constexpr noexcept] QVector2D QVector3D::toVector2D() const

この 3D ベクトルを、z 座標を除いた 2D ベクトル形式で返します。

toVector4D() およびtoPoint()も参照

[constexpr noexcept] QVector4D QVector3D::toVector4D() const

w 座標を 0 に設定した、この 3D ベクトルの 4 次元ベクトル形式を返します。

toVector2D() およびtoPoint()も参照

QVector3D QVector3D::unproject(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport) const

このベクトルのオブジェクト/モデル座標を,モデルビュー行列modelView ,射影行列projection ,ビューポート寸法viewport を用いてウィンドウ座標で返します.

クリップから正規化空間に変換するとき、ベクトル成分の w 成分による除算が行われます。w が 0 の場合に 0 で除算されないように、w は 1 に設定されます。

注: viewport の y 座標は OpenGL の向きを使用します。OpenGLは底辺が0であることを想定していますが、Qtでは上辺が0です。

project()も参照してください

[constexpr noexcept] float QVector3D::x() const

この点の x 座標を返します。

setX(),y(),z() も参照

[constexpr noexcept] float QVector3D::y() const

この点の y 座標を返します。

setY()、x()、z() も参照

[constexpr noexcept] float QVector3D::z() const

この点の z 座標を返します。

setZ()、x()、y() も参照

QVariant QVector3D::operator QVariant() const

3D ベクトルをQVariant として返します。

[constexpr noexcept] QVector3D &QVector3D::operator*=(float factor)

このベクトルの座標に指定された有限のfactor を乗算し、このベクトルへの参照を返します。

operator/=() およびoperator*()も参照して ください。

[constexpr noexcept] QVector3D &QVector3D::operator*=(QVector3D vector)

これはオーバーロードされた関数です。

このベクトルの各成分をvector の対応する成分で乗算し、このベクトルへの参照を返します。

注意: これは、このベクトルとvectorcrossProduct() とは異なります (その成分は、このベクトルとvector の内積に加算されます)。

crossProduct()、operator/=()、operator*()も参照

[constexpr noexcept] QVector3D &QVector3D::operator+=(QVector3D vector)

指定されたvector をこのベクトルに加算し、このベクトルへの参照を返します。

operator-=()も参照

[constexpr noexcept] QVector3D &QVector3D::operator-=(QVector3D vector)

指定されたvector をこの vector から減算し、この vector への参照を返します。

operator+=()も参照

[constexpr] QVector3D &QVector3D::operator/=(QVector3D vector)

このベクトルの各成分をvector の対応する成分で割り、このベクトルへの参照を返します。

vector には、ゼロまたは NaN のいずれの成分もあってはならない。

operator*=() およびoperator/()も参照

[constexpr] QVector3D &QVector3D::operator/=(float divisor)

このベクトルの座標を、与えられたdivisor で割り、このベクトルへの参照を返す。divisor はゼロまたは NaN であってはならない。

operator*=() およびoperator/()も参照

[constexpr] float &QVector3D::operator[](int i)

修正可能な参照として、インデックス位置i にあるベクトルの成分を返す。

i はベクトルの有効なインデックス位置でなければならない(すなわち、0 <= < 3)。i

[constexpr] float QVector3D::operator[](int i) const

インデックス位置i にあるベクトルの成分を返します。

i はベクトル内の有効なインデックス位置でなければなりません (すなわち、0 <= < 3)。i

関連する非メンバー

[noexcept] bool qFuzzyCompare(QVector3D v1, QVector3D v2)

v1v2 が等しい場合はtrue を返し、浮動小数点比較のための小さなファジー要素を許容します。

[constexpr noexcept] bool operator!=(QVector3D v1, QVector3D v2)

v1v2 と等しくない場合はtrue を返し、そうでない場合はfalse を返す。この演算子は正確な浮動小数点比較を使用する。

[constexpr noexcept] QVector3D operator*(QVector3D v1, QVector3D v2)

v1 の各成分にv2 の対応する成分を乗算したQVector3D オブジェクトを返します。

注意: これは、v1v2crossProduct() とは異なる(その構成要素は、v1v2 のドット積に加算される)。

QVector3D::crossProduct()も参照

[constexpr noexcept] QVector3D operator*(QVector3D vector, float factor)

与えられたvector のコピーに、与えられた有限のfactor を掛けたものを返す。

QVector3D::operator*=()も参照

[constexpr noexcept] QVector3D operator*(float factor, QVector3D vector)

与えられたvector のコピーに、与えられた有限のfactor を掛けたものを返す。

QVector3D::operator*=()も参照

[constexpr noexcept] QVector3D operator+(QVector3D v1, QVector3D v2)

与えられたベクトルv1v2 の和であるQVector3D オブジェクトを返します。

QVector3D::operator+=() も参照

[constexpr noexcept] QVector3D operator-(QVector3D v1, QVector3D v2)

v1 からv2 を減算したQVector3D オブジェクトを返す。

QVector3D::operator-=()も参照の こと。

[constexpr noexcept] QVector3D operator-(QVector3D vector)

これはオーバーロードされた関数である。

与えられたvector の各要素の符号を変更したQVector3D オブジェクトを返す。

QVector3D(0,0,0) - vector と同等。

[constexpr] QVector3D operator/(QVector3D vector, QVector3D divisor)

与えられたvector の各成分を、与えられたdivisor の対応する成分で割ったQVector3D オブジェクトを返す。

divisor には、ゼロまたは NaN のいずれの成分もあってはならない。

QVector3D::operator/=()も参照のこと

[constexpr] QVector3D operator/(QVector3D vector, float divisor)

与えられたvector の各成分を、与えられたdivisor で割ったQVector3D オブジェクトを返す。

divisor はゼロまたは NaN であってはならない。

QVector3D::operator/=()も参照の こと。

QDataStream &operator<<(QDataStream &stream, QVector3D vector)

与えられたvector を与えられたstream に書き込み、そのストリームへの参照を返します。

Qt データ型のシリアライズ」も参照して ください。

[constexpr noexcept] bool operator==(QVector3D v1, QVector3D v2)

v1v2 と等しい場合はtrue を返し、そうでない場合はfalse を返します。この演算子は、正確な浮動小数点数の比較を使用します。

QDataStream &operator>>(QDataStream &stream, QVector3D &vector)

与えられたstream から与えられたvector に 3D ベクトルを読み込み、ストリームへの参照を返します。

Qt データ型のシリアライズ」も参照してください

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。