91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 8KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-14
  • 語言: 其他
  • 標簽: c+??

資源簡介

obb樹的完整代碼,可以運行,測試函數需要自己根據自己需要寫導入數據的函數。

資源截圖

代碼片段和文件信息

#pragma?once
#pragma?execution_character_set(“utf-8“)
#include

//協方差矩陣
Eigen::Matrix3f?MATRIXOP::CalculateCovariance(Eigen::MatrixXf?pVertices)
{
Eigen::Matrix3f?covariance;
//求取列向量均值
Eigen::MatrixXf?meanVec?=?pVertices.colwise().mean();
//將列向量均值從MatrixXf?轉換為行向量?RowVectorXf
Eigen::RowVectorXf?meanVecRow(Eigen::RowVectorXf::Map(meanVec.data()?pVertices.cols()));
//求取上述的零均值列向量矩陣
Eigen::MatrixXf?zeroMeanMat?=?pVertices;
//計算協方差矩陣
zeroMeanMat.rowwise()?-=?meanVecRow;
if?(pVertices.rows()?==?1)
covariance?=?(zeroMeanMat.adjoint()*zeroMeanMat)?/?static_cast(pVertices.rows());
else
covariance?=?(zeroMeanMat.adjoint()*zeroMeanMat)?/?static_cast(pVertices.rows()?-?1);
return?covariance;
}

//特征值//特征向量//排序(按照特征值從大到小排序)//schmidt正交
Eigen::Matrix3f?MATRIXOP::CalculateEigenvectors(Eigen::Matrix3f?covariance)
{
EigenSolver?eig(covariance);
//特征值
Eigen::Matrix3f?eigenvalue?=?eig.pseudoEigenvalueMatrix();
//特征向量
Eigen::Matrix3f?eigenvectors?=?eig.pseudoEigenvectors();
//對特征值進行從大到小排序
Eigen::RowVector3f?eigenvalueVec?=?eigenvalue.colwise().sum();
unsigned?int?index[3]?=?{?012?};
for?(int?i?=?0;?i for?(int?j?=?0;j if?(eigenvalueVec[j]? {
float?temp?=?eigenvalueVec[j];
eigenvalueVec[j]?=?eigenvalueVec[j?+?1];
eigenvalueVec[j?+?1]?=?temp;
int?temp_index?=?index[j];
index[j]?=?index[j?+?1];
index[j?+?1]?=?temp_index;

}
Matrix3f?Sorted_eigenvector;
Matrix3f?Sorted_eigenvalue(eigenvalueVec.asDiagonal());
for?(unsigned?i?=?0;?i? {
Sorted_eigenvector.col(i)?=?eigenvectors.col(index[i]);
}
//schmidt正交
Matrix3f?schmidt_eigenvector;
for?(unsigned?int?i?=?0;?i? {
schmidt_eigenvector.col(i)?=?Sorted_eigenvector.col(i);
for?(unsigned?int?j?=?1;?j?<=?i;?j++)
{
schmidt_eigenvector.col(i)?-=?schmidt_template(Sorted_eigenvector.col(i)?schmidt_eigenvector.col(j?-?1));
}
schmidt_eigenvector.col(i).normalized();
}
return?schmidt_eigenvector;
}

//schmidt正交的單步計算模板
Eigen::Vector3f?MATRIXOP::schmidt_template(Eigen::Vector3f?vector0?Eigen::Vector3f?vector1)
{
Vector3f?schmidt_vector?=?vector0.dot(vector1)?/?vector1.squaredNorm()?*?vector1;
return?schmidt_vector;
}

//一維容器轉換為矩陣
Eigen::MatrixXf?MATRIXOP::vector_trans_matrix(vector?vertex)
{
vector?Vertices;
Eigen::RowVector3f?rowvector;
for?(unsigned?int?i?=?0;?i? {
for?(unsigned?int?j?=?0;?j? {
rowvector(j)?=?vertex[3?*?i?+?j];
}
Vertices.push_back(rowvector);
}
unsigned?int?numVertices?=?Vertices.size();
Eigen::MatrixXf?pVertices(numVertices?3);
for?(unsigned?int?i?=?0;?i? {
pVertices.row(i)?=?Vertices[i];
}
return?pVertices;
}

//glm對應矩陣變換-縮放矩陣//size縮放尺寸一般定義第四個元素為1.0
Eigen::Matrix4f?MATRIXOP::scal_matrix(Eigen::Vector4f?&?size)
{
Eigen::Matrix4f?sc

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????2482??2018-09-28?16:37??OBB.h

?????文件???????3426??2018-09-28?16:37??OBBtree.cpp

?????文件???????1202??2018-09-28?16:42??OBBtree.h

?????文件???????1956??2018-09-28?16:35??test_main.cpp

?????文件???????4731??2018-09-28?16:37??MATRIXOP.cpp

?????文件???????1249??2018-09-28?16:38??MATRIXOP.h

?????文件???????9332??2018-09-28?16:37??OBB.cpp

-----------?---------??----------?-----??----

????????????????24378????????????????????7


評論

共有 條評論