QVector3D Class
QVector3D クラスは、3D 空間におけるベクトルまたは頂点を表します。詳細...
ヘッダー | #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 座標はゼロに設定されます。
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 の外積を返します。 2つのベクトルが平行である場合、これはゼロになります。
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
この 3D ベクトルをQPointF 形式で返します。z 座標は削除されます。
toPoint() およびtoVector2D()も参照 。
[constexpr noexcept]
QVector2D QVector3D::toVector2D() const
この 3D ベクトルを、z 座標を除いた 2D ベクトル形式で返します。
toVector4D() およびtoPoint()も参照 。
[constexpr noexcept]
QVector4D QVector3D::toVector4D() const
w 座標をゼロに設定した、この 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 をこの vector に追加し、この vector への参照を返します。
operator-=()も参照してください 。
[constexpr noexcept]
QVector3D &QVector3D::operator-=(QVector3D 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)
与えられたstream に与えられたvector を書き込み、ストリームへの参照を返します。
Qt データ型のシリアライズも参照してください 。
[constexpr noexcept]
bool operator==(QVector3D v1, QVector3D v2)
v1 がv2 と等しい場合はtrue
を返し、そうでない場合はfalse
を返す。この演算子は正確な浮動小数点比較を使用する。
QDataStream &operator>>(QDataStream &stream, QVector3D &vector)
与えられたstream から与えられたvector に 3D ベクトルを読み込み、ストリームへの参照を返します。
Qt データ型のシリアライズも参照してください 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.