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は、Rendering in 3D に含まれています。
パブリック関数
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)
ベクトルv1 とv2 の外積を返します。この外積は、v1 とv2 の平面に垂直なベクトルです。
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 -plane1 とplane3 -plane1 です.
normal() およびdistanceToLine()も参照 。
[noexcept]
float QVector3D::distanceToPoint(QVector3D point) const
この頂点から、頂点point で定義される点までの距離を返します。
distanceToPlane() およびdistanceToLine()も参照 。
[static constexpr noexcept]
float QVector3D::dotProduct(QVector3D v1, QVector3D v2)
v1 とv2 のドット積を返します。
[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)
ベクトルv1 とv2 によってスパンされる平面の単位法線ベクトルを返します。
結果を単位ベクトルに正規化する必要がない場合は、v1 とv2 の外積を計算するために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 の正規化されたベクトルが返されます。
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 座標に設定します。
[constexpr noexcept]
void QVector3D::setY(float y)
この点の y 座標を、与えられた有限のy 座標に設定します。
[constexpr noexcept]
void QVector3D::setZ(float z)
この点の z 座標を、 与えられた有限のz 座標に設定します。
[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 座標を返します。
[constexpr noexcept]
float QVector3D::y() const
この点の y 座標を返します。
[constexpr noexcept]
float QVector3D::z() const
この点の z 座標を返します。
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 の対応する成分で乗算し、このベクトルへの参照を返します。
注意: これは、このベクトルとvector のcrossProduct() とは異なります (その成分は、このベクトルと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)
v1 とv2 が等しい場合はtrue
を返し、浮動小数点比較のための小さなファジー要素を許容します。
[constexpr noexcept]
bool operator!=(QVector3D v1, QVector3D v2)
v1 がv2 と等しくない場合はtrue
を返し、そうでない場合はfalse
を返す。この演算子は正確な浮動小数点比較を使用する。
[constexpr noexcept]
QVector3D operator*(QVector3D v1, QVector3D v2)
v1 の各成分にv2 の対応する成分を乗算したQVector3D オブジェクトを返します。
注意: これは、v1 とv2 のcrossProduct() とは異なる(その構成要素は、v1 とv2 のドット積に加算される)。
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)
与えられたベクトルv1 とv2 の和である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)
v1 がv2 と等しい場合は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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。