当前位置: 首页 > news >正文

软件网站下载/seo流量排名软件

软件网站下载,seo流量排名软件,t b无线新闻台在线直播,店面设计说明绕任意轴旋转的情况比较复杂,主要分为两种情况,一种是平行于坐标轴的,一种是不平行于坐标轴的,对于平行于坐标轴的,我们首先将旋转轴平移至与坐标轴重合,然后进行旋转,最后再平移回去。 将旋转…

绕任意轴旋转的情况比较复杂,主要分为两种情况,一种是平行于坐标轴的,一种是不平行于坐标轴的,对于平行于坐标轴的,我们首先将旋转轴平移至与坐标轴重合,然后进行旋转,最后再平移回去。

  • 将旋转轴平移至与坐标轴重合,对应平移操作
  • 旋转,对应操作
  • 步骤1的逆过程,对应操作 

整个过程就是

对于不平行于坐标轴的,可按如下方法处理。(该方法实际上涵盖了上面的情况)

  1. 将旋转轴平移至原点
  2. 将旋转轴旋转至YOZ平面
  3. 将旋转轴旋转至于Z轴重合
  4. 绕Z轴旋转θ度
  5. 执行步骤3的逆过程
  6. 执行步骤2的逆过程
  7. 执行步骤1的逆过程

假设用v1(a1, b2, c2)和v2(a2, b2, c2)来表示旋转轴,θ表示旋转角度。为了方便推导,暂时使用右手系并使用列向量,待得出矩阵后转置一下即可,上面步骤对应的流程图如下。

步骤1是一个平移操作,将v1v2平移至原点,对应的矩阵为

步骤2是一个旋转操作,将p(p = v2 -v1)旋转至XOZ平面,步骤3也是一个旋转操作,将p旋转至与Z轴重合,这两个操作对应的图如下。

做点p在平面YOZ上的投影点q。再过q做Z轴垂线,则r是p绕X轴旋转所得,且旋转角度为α,且

,    

于是旋转矩阵为

现在将r绕Y轴旋转至与Z轴重合,旋转的角度为-beta(方向为顺时针),且

,     

于是得到旋转矩阵为

最后是绕Z轴旋转,对应的矩阵如下

如果旋转轴是过原点的,那么第一步和最后一步的平移操作可以省略,也就是把中间五个矩阵连乘起来,再转置一下,得到下面的绕任意轴旋转的矩阵

对应的函数代码如下。

复制代码
void RotateArbitraryAxis(D3DXMATRIX* pOut, D3DXVECTOR3* axis, float theta)
{D3DXVec3Normalize(axis, axis);float u = axis->x;float v = axis->y;float w = axis->z;pOut->m[0][0] = cosf(theta) + (u * u) * (1 - cosf(theta));pOut->m[0][1] = u * v * (1 - cosf(theta)) + w * sinf(theta);pOut->m[0][2] = u * w * (1 - cosf(theta)) - v * sinf(theta);pOut->m[0][3] = 0;pOut->m[1][0] = u * v * (1 - cosf(theta)) - w * sinf(theta);pOut->m[1][1] = cosf(theta) + v * v * (1 - cosf(theta));pOut->m[1][2] = w * v * (1 - cosf(theta)) + u * sinf(theta);pOut->m[1][3] = 0;pOut->m[2][0] = u * w * (1 - cosf(theta)) + v * sinf(theta);pOut->m[2][1] = v * w * (1 - cosf(theta)) - u * sinf(theta);pOut->m[2][2] = cosf(theta) + w * w * (1 - cosf(theta));pOut->m[2][3] = 0;pOut->m[3][0] = 0;pOut->m[3][1] = 0;pOut->m[3][2] = 0;pOut->m[3][3] = 1;
复制代码

如果旋转轴是不过原点的,那么第一步和最后一步就不能省略,将所有七个矩阵连乘起来,得到如下变换矩阵

对应如下这个超长的矩阵,在这里(u, v, w) = (a2, b2, c2) - (a1, b1, c1),且是单位向量,a, b, c分别表示(a1, b1, c1)

将上面的过程写成函数,该函数接受四个参数,第一个参数是一个输出参数,用来保存得到的旋转矩阵,第二个和第三个参数是旋转轴的两个端点,最后一个参数是旋转角度θ,注意,在函数中我们已经将上面的矩阵转置了,因为上面是按照列向量计算的。

复制代码
void RotateArbitraryLine(D3DXMATRIX* pOut, D3DXVECTOR3* v1, D3DXVECTOR3* v2, float theta)
{float a = v1->x;float b = v1->y;float c = v1->z;D3DXVECTOR3 p = *v2 - *v1;D3DXVec3Normalize(&p, &p);float u = p.x;float v = p.y;float w = p.z;float uu = u * u;float uv = u * v;float uw = u * w;float vv = v * v;float vw = v * w;float ww = w * w;float au = a * u;float av = a * v;float aw = a * w;float bu = b * u;float bv = b * v;float bw = b * w;float cu = c * u;float cv = c * v;float cw = c * w;float costheta = cosf(theta);float sintheta = sinf(theta);pOut->m[0][0] = uu + (vv + ww) * costheta;pOut->m[0][1] = uv * (1 - costheta) + w * sintheta;pOut->m[0][2] = uw * (1 - costheta) - v * sintheta;pOut->m[0][3] = 0;pOut->m[1][0] = uv * (1 - costheta) - w * sintheta;pOut->m[1][1] = vv + (uu + ww) * costheta;pOut->m[1][2] = vw * (1 - costheta) + u * sintheta;pOut->m[1][3] = 0;pOut->m[2][0] = uw * (1 - costheta) + v * sintheta;pOut->m[2][1] = vw * (1 - costheta) - u * sintheta;pOut->m[2][2] = ww + (uu + vv) * costheta;pOut->m[2][3] = 0;pOut->m[3][0] = (a * (vv + ww) - u * (bv + cw)) * (1 - costheta) + (bw - cv) * sintheta;pOut->m[3][1] = (b * (uu + ww) - v * (au + cw)) * (1 - costheta) + (cu - aw) * sintheta;pOut->m[3][2] = (c * (uu + vv) - w * (au + bv)) * (1 - costheta) + (av - bu) * sintheta;pOut->m[3][3] = 1;
}
http://www.jmfq.cn/news/4760839.html

相关文章:

  • 开封网站制作哪家好/抖音营销软件
  • 自己做的网站发布详细步骤/明星百度指数排行
  • 百度搜索引擎推广怎么弄/企业seo排名
  • 千库网素材免费下载官方/女生seo专员很难吗为什么
  • 网站建设方案 下载/软文素材网站
  • 专门代做毕设的网站/百度图片收录提交入口
  • 北京住房和城乡建设部网站首页/网络优化的基本方法
  • 舞钢做网站/西安seo排名外包
  • 珠海网站建设小小网络/百度竞价托管外包代运营
  • 重庆企业100强排名/顺德搜索seo网络推广
  • 淮安市政府门户网站建设的调查报告/网络营销的种类
  • 网站建设 cms 下载/b2b网站免费推广平台
  • 人民法院网站建设背景/个人主页网页设计
  • 西安给公司做网站/怎么样把广告做在百度上
  • 做网站买一个域名就够了吗/直通车关键词怎么优化
  • 护肤网站模版/关于新品牌的营销策划
  • 网站建设犭金手指C排名15/合肥seo排名扣费
  • 美武汉有什么网站建设公司/百度问答怎么赚钱
  • 做三级锅炉证模拟考试的网站/百度广告推广怎么收费了
  • 宜兴做网站多少钱/网络推广工作好干吗
  • 在线做网站黄/河南网站推广公司
  • 动画网站模块/网络营销是什么工作
  • 酒泉网站建设设计/百度指数功能
  • 网站变移动网站/广告软文怎么写
  • 网站建设用什么软件/百度链接提交
  • 兰陵住房建设局网站/百度下载app安装
  • vs怎么建手机网站/排名优化百度
  • 昆明做网站优化的公司/谷歌官网登录入口
  • 网站的锚点链接怎么做/哪些平台可以免费打广告
  • 优质企业网站建设/百度推广代理开户