因此,我有这个算法来计算3D形状的横截面与平面给定的法向量.
然而,我目前的问题是,横截面是3D点的集合(全部位于该给定平面上)并且为了显示它我需要将该坐标映射到XY平面.
如果平面法线类似于(0,0,c),这种方法很有效 - 我只是复制x和y坐标,丢弃z.
这是我的问题:既然我不知道如何转换任何其他平原,任何人都可以给我任何关于我现在应该做什么的提示?
有人可以解释我运营商的错误:
Matrix3D Matrix3D::operator*(Matrix3D& m) {
Matrix3D ret;
for(int i=0;i<4;i++) {
for(int j=0;j<4;j++) {
ret._data[i][j]=0.0;
for(int k=0;k<4;k++) {
ret._data[i][j] += (this->_data[i][k]*m._data[k][j]);
}
}
}
return ret;
}
Matrix3D& Matrix3D::operator=(Matrix3D& m) {
if(this==&m) {
return *this;
}
for(int i=0;i<4;i++) {
for(int j=0;j<4;j++) {
this->_data[i][j] = m._data[i][j];
}
}
return *this;
}
Matrix3D Matrix3D::Rotation(double ax, double ay, double az) {
Matrix3D rotX;
Matrix3D rotY;
Matrix3D rotZ;
rotX(
1, 0, 0, 0,
0, cos(ax), -sin(ax), 0,
0, sin(ax), cos(ax), 0,
0, 0, 0, 1 …Run Code Online (Sandbox Code Playgroud)