简介

旋转变换,对某个点进行绕x,y,z的变换。

代码

#include <iostream>
#include <vector>
#include <algorithm>
// -------------------- OpenMesh
using namespace std;
#define PI 3.1415926 static void MatVec3(const double m[9], const double x[3], double y[3]) {//3*3 * 3*1 的矩阵
y[0] = m[0] * x[0] + m[1] * x[1] + m[2] * x[2];
y[1] = m[3] * x[0] + m[4] * x[1] + m[5] * x[2];
y[2] = m[6] * x[0] + m[7] * x[1] + m[8] * x[2];
} //旋转一定的角度 in 输入点 out 变换输出点
void Transform_Cloth_RotBryantAngle(double angle_x, double angle_y, double angle_z, const double in[], double out[]) {
angle_x *= PI / 180.0;
angle_y *= PI / 180.0;
angle_z *= PI / 180.0; const double Rx[9] = {
1, 0, 0,
0, cos(angle_x),-sin(angle_x),
0, sin(angle_x),cos(angle_x)
};
const double Ry[9] = {
cos(angle_y), 0, sin(angle_y),
0 , 1, 0,
-sin(angle_y), 0, cos(angle_y)
};
const double Rz[9] = {
cos(angle_z), -sin(angle_z), 0,
sin(angle_z), cos(angle_z), 0,
0, 0, 1
};
double res[3] = { 0 };
MatVec3(Rx, in, out);
res[0] = out[0], res[1] = out[1], res[2] = out[2];
MatVec3(Ry, res, out);
res[0] = out[0], res[1] = out[1], res[2] = out[2];
MatVec3(Rz, res, out);
return;
} int main()
{
double point[3] = {1, 0, 0};
double out[3] = { 0 };
Transform_Cloth_RotBryantAngle(90,90,90,point, out); cout << "POINT " << out[0] << " " << out[1] << " " << out[2] << std::endl;
system("pause");
}

旋转变换,对某个点进行绕x,y,z的变换。的更多相关文章

  1. 3d旋转--transform-style: preserve-3d,translate3d(x,y,z),perspective()

    transform-style: preserve-3d,translate3d(x,y,z),perspective() 让其倾斜的核心:加perspective(600px)让其动的核心:rans ...

  2. 在数组中找出x+y+z=0的组合

    就是找x+y=-z的组合 转化为找出值为-z满足x+y=-z的组合 解法一: 为了查找,首先想到排序,为了后面的二分,nlogn, 然后x+y的组合得n^2的复杂度,加上查找是否为-z,复杂度为nlo ...

  3. 用宏 x y z,找出最大值最小值

    #define max(x,y,z) ((x)>(y)?(x):(y))>(z)?((x)>(y)?(x):(y)):(z) #define min(x,y,z) ((x)<( ...

  4. 【Python3练习题 005】输入三个整数x,y,z,请把这三个数由小到大输出

    import re x, y, z = re.split(',| |,| ', input('请输入3个数字,用逗号或空格隔开:'))x, y, z = int(x), int(y), int(z) ...

  5. 【功能】返回数据类型、字节长度和在内部的存储位置.DUMP(w[,x[,y[,z]]])

    DUMP(w[,x[,y[,z]]]) [功能]返回数据类型.字节长度和在内部的存储位置. [参数] w为各种类型的字符串(如字符型.数值型.日期型--) x为返回位置用什么方式表达,可为:8,10, ...

  6. 18年春招某编程题:有三个整数X,Y,Z,要求进行若干次操作使得X,Y,Z相等

    题目描述: 给定三个整数X,Y,Z,要求进行若干次操作使得X,Y,Z相等,操作有两种: 1.从X,Y,Z中选择两个数都加1. 2.从X,Y,Z中选择一个数加2. 求最少需要多少次操作. 题目思路: 1 ...

  7. x+y+z=n的正整数解

    题:x+y+z=n,其中(n>=3),求x,y,z的正整数解的个数根据图象法:x>=1,y>=1,x+y<=n-1

  8. ‘,’之后要留空格,如 Function(x, y, z)

    ‘,’之后要留空格,如 Function(x, y, z).如果‘;’不是一行的结束 符号,其后要留空格,如 for (initialization; condition; update). #inc ...

  9. 【严蔚敏】【数据结构题集(C语言版)】1.16 自大至小依次输出读入的三个整数X,Y,Z

    #include <stdio.h> #include<stdlib.h> int main() { int x,y,z,temp; scanf("%d%d%d&qu ...

  10. 15 输入三个整数x,y,z,请把这三个数由小到大输出。

    题目:输入三个整数x,y,z,请把这三个数由小到大输出. public class _015ThreeNumberSort { public static void main(String[] arg ...

随机推荐

  1. Web前端入门第 35 问:CSS 细说 flex 弹性盒子布局(多图)

    flex 作为现代布局方案中最常用的手段,有必要拉出来细说. flex 相关的 CSS 属性 容器(父元素)相关的 CSS 属性 以下的 CSS 属性,在 flex 布局中需喂给父元素,设置 flex ...

  2. 2025dsfz集训Day10:区间、树形DP

    Day10:区间.树形DP 区间DP 区间类型动态规划是线性动态规划的拓展,它在分阶段划分问题时,与阶段中元素出现的顺序和由前一阶段的哪些元素合并而来有很大的关系.(例:\(f[i][j]=f[i][ ...

  3. Java Factory工厂模式

    /** * 工厂类:用于连接接口和子类,尽量减少客户端的复杂性 * 2017-08-25 * @author Junwei Zhu * */ interface Fruit { public void ...

  4. 【翻译】 Processing系列|(三)安卓项目构建

    上上篇:[翻译]Processing系列|(一)简介及使用方法 上一篇:[翻译]Processing系列|(二)安卓模式的安装使用及打包发布 我顺藤摸瓜找到了Github仓库,然后发现人家主要还是用A ...

  5. 【HUST】代数学|理想的分解习题

    以下内容中,背景知识部分尽数由GPT生成,生成的方式是直接对问题进行提问,存在错误的小节我已经标注,不保证不存在其他错误. 习题部分是GPT生成后,我将看不懂的地方自己重写了一遍的结果.不保证完全正确 ...

  6. jFinal 使用 SolonMCP 开发 MCP(拥抱新潮流)

    MCP 官方的 java-sdk 目前只支持 java17+.直接基于 mcp-java-sdk 也比较复杂.使用 SolonMCP,可以基于 java8 开发(像 MVC 的开发风格),且比较简单. ...

  7. TVM: 编译深度学习模型的快速入门教程

    支持的TVM硬件后端概述 下图显示了 TVM 目前支持的硬件后端: 在本教程中,将选择 cuda 和 llvm 作为目标后端.首先,让导入 Relay 和 TVM. import numpy as n ...

  8. yysxky

    哎,还有三天目标分数50分pde能否及格,我其实是有一些信心的我觉得我可以前两天觉得教资pde傻逼班里的模拟教资给我搞得非常恶心当时再加上根本本学不会,我真的会要崩溃的 现在结束了面试感觉其实还好会有 ...

  9. RocketMQ源码详解(消息存储、Consumer)

    消息存储 消息存储核心类 private final MessageStoreConfig messageStoreConfig; //消息配置属性 private final CommitLog c ...

  10. Flume+Kafka获取MySQL数据

    摘要 MySQL被广泛用于海量业务的存储数据库,在大数据时代,我们亟需对其中的海量数据进行分析,但在MySQL之上进行大数据分析显然是不现实的,这会影响业务系统的运行稳定.如果我们要实时地分析这些数据 ...