码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • VEX —— Functions|Conversion


    目录

    atof —— 将字符串转化为浮点

    atoi —— 将字符串转化为整数

    degrees —— 将弧度转化为角度

    radians —— 将角度转化为弧度

    hsvtorgb —— 将颜色空间从HSV转化为RGB

    rgbtohsv —— 将颜色空间从RGB转化为HSV

    rgbtoxyz —— 将线性sRGB转化为CIE XYZ

    xyztorgb —— 将CIE XYZ转化为线性sRGB

    serialize —— 将vector/matrix数组展平为浮点数组

    unserialize —— 将展平的浮点数组转化为vector/matrix数组

    cracktransform —— 依据c值返回xform的特定分量的变换

    eulertoquaternion —— 从欧拉角创建表示四元数的vector4

    quaterniontoeuler —— 从表示四元数的vector4创建欧拉角

    qconvert —— 将表示四元数的vector4转化为matrix3


    atof —— 将字符串转化为浮点

    float atof(string str)
    • 忽略空格;
    • 如字符串不包含数字,返回0.0;
    • 字符串可包含指数(如1.25e+5);
    1. float a = atof("1");
    2. float b = atof("1.25e+5");

    atoi —— 将字符串转化为整数

    1. int atoi(string str)
    2. int atoi(string str, int base)
    • 忽略空格;
    • 如字符串不包含数字,返回0.0;
    • 字符串可包含指数(如1.25e+5);

    degrees —— 将弧度转化为角度

    • 大多数VEX三角函数使用弧度,但用户更易使用角度;
    1. float degrees(float num_in_rads)
    2. vector2 degrees(vector2 nums_in_rads)
    3. vector degrees(vector nums_in_rads)
    4. vector4 degrees(vector4 nums_in_rads)

    radians —— 将角度转化为弧度

    1. //角度转化为弧度
    2. float radians(float num_in_degs)
    3. //应用了反正切atan()
    4. radians(nums_in_degs)

    hsvtorgb —— 将颜色空间从HSV转化为RGB

    1. vector hsvtorgb(vector hsv)
    2. vector hsvtorgb(float hue, float sat, float val)

    rgbtohsv —— 将颜色空间从RGB转化为HSV

    1. vector rgbtohsv(vector rgb)
    2. vector rgbtohsv(float r, float g, float b)

    rgbtoxyz —— 将线性sRGB转化为CIE XYZ

    vector rgbtoxyz(vector rgb)
    • XYZ被认为是通用颜色空间;

    xyztorgb —— 将CIE XYZ转化为线性sRGB

    vector xyztorgb(vector xyz)

    serialize —— 将vector/matrix数组展平为浮点数组

    1. float[] serialize(vectors[])
    2. float[] serialize(matrices[])
    1. vector v[] = { {1,2,3}, {7,8,9} }; // A vector[] of length 2
    2. float f[];
    3. f = serialize(v);
    4. // Now f[] has a length of 6 and equals { 1,2,3,7,8,9 }

    unserialize —— 将展平的浮点数组转化为vector/matrix数组

    1. [] unserialize(float values[])
    2. [] unserialize(float values[])
    1. vector v[]
    2. float f[] = { 1, 2, 3, 7, 8, 9 };
    3. v = vector(unserialize(f));
    4. // Now v has a length of 2 and contains { {1,2,3}, {7,8,9} }

    cracktransform —— 依据c值返回xform的特定分量的变换

    • VOP中对应的节点为 Extract Transform ;
    • 与函数 maketransform 相对应;
    1. vector cracktransform(int trs, int xyz, int c, vector pivot, vector pivot_rotate, matrix xform)
    2. vector cracktransform(int trs, int xyz, int c, vector pivot, matrix xform)
    • c=0,返回translate;
    • c=1,返回rotate(单位degree,可使用radian转化为弧度);
    • c=4,返回rotate(单位radian);
    • c=2,返回scale;
    • c=3,返回shears;
    void cracktransform(int trs, int xyz, vector pivot, vector pivot_rotate, matrix xform, vector &t, vector &r, vector &s, vector &shears)
    • 如需返回有多个组件,使用此更有效;
    void cracktransform(int trs, int xyz, vector pivot, matrix xform, vector &t, vector &r, vector &s)
    • 不支持pivot_rotate或shears;
    • 如需返回有多个组件,使用此更有效;
    1. vector @cdir;
    2. vector @raydir;
    3. //get a matrix with the camera's transforms
    4. matrix cam_matrix = optransform('/obj/cam1');
    5. //extract out the camera position as a vector
    6. @cdir = cracktransform(XFORM_SRT, XFORM_XYZ, 0, {0,0,0}, cam_matrix);
    7. //get a vector to project point from camera
    8. @raydir = normalize(@P-@cdir);

    eulertoquaternion —— 从欧拉角创建表示四元数的vector4

    vector4 eulertoquaternion(vector rotations, int order)
    • rotations表示欧拉角(X,Y,Z),单位弧度;
    • 需指定旋转顺序,使用常数(被定义在$HH/vex/include/math.h),XFORM_XYZ表示旋转顺序为x、y、z;
    1. vector rot = chv('ang');
    2. @orient = eulertoquaternion(rot, XFORM_XYZ);
    3. @P = qrotate(@orient, @P);

    quaterniontoeuler —— 从表示四元数的vector4创建欧拉角

    1. vector quaterniontoeuler(vector4 orient, int order)
    • 单位为弧度,可使用degree转化为角度;
    • 需指定旋转顺序,使用常数(被定义在$HH/vex/include/math.h),XFORM_XYZ表示旋转顺序为x、y、z;

    qconvert —— 将表示四元数的vector4转化为matrix3

    matrix3 qconvert(vector4 quaternion)
    1. //转化,并应用一个偏移
    2. matrix qconvert(vector4 quaternion, vector offset)
    1. //转化为angle/axis矢量
    2. vector qconvert(vector4 quaternion)

  • 相关阅读:
    docker的安装
    linux部署Minio(分布式文件服务器)
    17、学习MySQL 事务
    C语言之指针进阶篇(3)
    LabVIEW开发TDS1000 和TDS2000 系列泰克示波器
    [WPF]用HtmlTextBlock实现消息对话框的内容高亮和跳转
    #gStore-weekly | gStore最新版本0.9.1之BIND函数的使用
    Linux小总结
    mongodb 集合复制---聚合管道操作符$out来实现
    多线程常见锁的策略
  • 原文地址:https://blog.csdn.net/NapoleonCoder/article/details/133215494
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号