美文网首页
旋转矩阵公式推导

旋转矩阵公式推导

作者: 醉酒青牛_fa4e | 来源:发表于2019-04-14 13:45 被阅读0次
image.png image.png

image.png

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class VertexAnimalMatrix : MonoBehaviour {

float tmpFloat;

Mesh myMesh;

float timer;

Vector3[] myList;
void Start () {
    myMesh = transform.GetComponent<MeshFilter>().mesh;
    //for(int i=0;i< myMesh.vertices.Length; i++)
    //{
    //    myList[i] = myMesh.vertices[i];
    //}
    

}

void Update () {
    myList = myMesh.vertices;
    tmpFloat = Input.GetAxis("Horizontal");
    for (int i = 0; i < myMesh.vertices.Length; i++)
    {
        //这里旋转的层数不多是因为顶点少
        myList[i]= DoTwistX(tmpFloat* myList[i].x*0.1f, myList[i]);
    }
    myMesh.vertices = myList;
    //myMesh.SetVertices(DoTwistX(tmpFloat, gameObject.transform.position))

}
/// <summary>
/// 根据矩阵,围绕X轴旋转
/// </summary>
/// <param name="angle">要旋转的角度</param>
/// <param name="pos">obj的位置</param>
/// <returns></returns>
public Vector3 DoTwistX(float angle,Vector3 pos)
{
    float cos = Mathf.Cos(angle);

    float sin = Mathf.Sin(angle);

    Vector3 result = pos;

    result.y = pos.y * cos + pos.z * sin;

    result.z = pos.y * (-sin) + pos.z * cos;
    return result;
}
/// <summary>
/// 根据矩阵,围绕Y轴旋转
/// </summary>
/// <param name="angle">要旋转的角度</param>
/// <param name="pos">要旋转的obj的位置</param>
/// <returns></returns>
public Vector3 DoTwistY(float angle,Vector3 pos)
{
    float cos = Mathf.Cos(angle);
    float sin = Mathf.Sin(angle);

    Vector3 result = pos;

    result.x = pos.x * cos + pos.y * (-sin);

    result.z = pos.x * sin + pos.y * cos;
    return result;
}
/// <summary>
/// 根据矩阵,围绕Z轴旋转
/// </summary>
/// <param name="angle">要旋转的角度</param>
/// <param name="pos">要旋转的obj的位置</param>
/// <returns></returns>
public Vector3 DoTwistZ(float angle,Vector3 pos)
{
    float cos = Mathf.Cos(angle);
    float sin = Mathf.Sin(angle);

    Vector3 result = pos;

    result.x = pos.x * cos + pos.y * sin;
    result.y = pos.x * (-sin) + pos.y * cos;

    return result;
}

}

相关文章

  • 旋转矩阵公式推导

    image.png using System.Collections;using System.Collectio...

  • Jensen不等式

    (hessan矩阵是根据泰勒公式推导)

  • 相机标定知识和深度数据映射彩色数据

    旋转矩阵坐标系转换一坐标系转换二Kinect 深度转彩色公式推导刚体变换Kinect1代正确映射映射详解用自己的k...

  • 从初中三角函数及和差化积公式推导旋转矩阵

    初中数学解决高等数学问题 关键是初中的三角函数以及和差化积公式 我们通过三角函数推导出旋转矩阵 而旋转是刚体或仿射...

  • 推导坐标旋转公式(转)

    最终公式 该公式仅仅针对旋转中心在坐标原点的情况。 推导过程 从数学上来说,此公式可以用来计算某个点绕另外一点旋转...

  • 矩阵求导公式

    1 二阶范数 2 矩阵求导基本公式(等式两边同时去除tr,公式不变): 3 则论文中简单公式均可推导出来

  • 旋转平移

    二维旋转 三角函数展开: 带入xy公式: 转为矩阵形式: 二维绕点旋转,旋转矩阵对角记忆 加入平移引入齐次坐标: ...

  • 2.opengl入门-变换

    涉及线性代数矩阵的基础,需要简单复习,矩阵的+ - x / 运算比较容易,稍微复杂点的是旋转,参考知乎上的一篇推导...

  • Spectral Graph Convolution Netwo

    从上面的推导中可以看到原本的卷积运算,在图上的公式就是 其中表示的是的特征矩阵,但是很容易知道的就是对于很多矩阵,...

  • WebGL 3D(三角形的矩阵变换[平移、旋转、缩放])

    三角形平移 1、公式实现 2、矩阵实现 三角形旋转 1、公式代码实现: 2、变换矩阵代码实现: 三角形缩放 1、公...

网友评论

      本文标题:旋转矩阵公式推导

      本文链接:https://www.haomeiwen.com/subject/guxsmqtx.html