//输入为OCS中的坐标点,及其Extrusion
void DxfReader::OCStoWCS(const DxfExtrusion & extru, DxfPoint & point)
{
double Nx = extru.m_edx, Ny = extru.m_edy, Nz = extru.m_edz;
double XAx, YAx, ZAx, Ax;
double XAy, YAy, ZAy, Ay;
//逆任意轴算法
if (fabs(Nx) < 1.0 / 64 && fabs(Ny) < 1.0 / 64)
{
Ax = sqrt(pow(Nx, 2) + pow(Nz, 2));
XAx = Nz / Ax;
YAx = 0;
ZAx = -Nx / Ax;
Ay = sqrt(pow(Nx, 2) + pow(Ny, 2)
+ pow(pow(Nx, 2) + pow(Nz, 2), 2)
+ pow(Ny, 2) * pow(Nz, 2));
XAy = -Nz * Ny / Ay;
YAy = (pow(Nx, 2) + pow(Nz, 2)) / Ay;
ZAy = -Ny * Nz / Ay;
}
else
{
Ax = sqrt(pow(Nx, 2) + pow(Ny, 2));
XAx = -Ny / Ax;
YAx = Nx / Ax;;
ZAx = 0;
Ay = sqrt(pow(Nx, 2) * pow(Nz, 2)
+ pow(pow(Nx, 2) + pow(
dxf文件中点的坐标系转换----OCS中的坐标转换为WCS中的坐标
最新推荐文章于 2025-02-17 00:33:13 发布