VEX —— Functions|Conversion

本文介绍了VEX编程中的各种转换函数,包括字符串转浮点数(atof,atoi)、角度弧度转换(degrees,radians)、颜色空间转换(hsvtorgb,rgbtohsv,rgbtoxyz,xyztorgb)、向量矩阵操作(serialize,unserialize,cracktransform)以及四元数相关(eulertoquaternion,quaterniontoeuler,qconvert)。这些函数对于处理几何、颜色和数学计算在图形和视觉效果中至关重要。

目录

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);
float a = atof("1");
float b = atof("1.25e+5");

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

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

degrees —— 将弧度转化为角度

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

radians —— 将角度转化为弧度

//角度转化为弧度
float radians(float num_in_degs)
//应用了反正切atan()
<vector> radians(<vector>nums_in_degs)

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

vector hsvtorgb(vector hsv)
vector hsvtorgb(float hue, float sat, float val)

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

vector rgbtohsv(vector rgb)
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数组展平为浮点数组

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

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

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

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

  • VOP中对应的节点为 Extract Transform
  • 与函数 maketransform 相对应;
vector cracktransform(int trs, int xyz, int c, vector pivot, vector pivot_rotate, matrix xform)
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;
  • 如需返回有多个组件,使用此更有效;
vector @cdir;
vector @raydir;
//get a matrix with the camera's transforms
matrix cam_matrix = optransform('/obj/cam1');
//extract out the camera position as a vector
@cdir = cracktransform(XFORM_SRT, XFORM_XYZ, 0, {0,0,0}, cam_matrix);
//get a vector to project point from camera
@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;
vector rot = chv('ang');
@orient = eulertoquaternion(rot, XFORM_XYZ);
@P = qrotate(@orient, @P);

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

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

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

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

【EI复现】基于深度强化学习的微能源网能量管理与优化策略研究(Python代码实现)内容概要:本文围绕“基于深度强化学习的微能源网能量管理与优化策略”展开研究,重点利用深度Q网络(DQN)等深度强化学习算法对微能源网中的能量调度进行建模与优化,旨在应对可再生能源出力波动、负荷变化及运行成本等问题。文中结合Python代码实现,构建了包含光伏、储能、负荷等元素的微能源网模型,通过强化学习智能体动态决策能量分配策略,实现经济性、稳定性和能效的多重优化目标,并可能与其他优化算法进行对比分析以验证有效性。研究属于电力系统与人工智能交叉领域,具有较强的工程应用背景和学术参考价值。; 适合人群:具备一定Python编程基础和机器学习基础知识,从事电力系统、能源互联网、智能优化等相关方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①学习如何将深度强化学习应用于微能源网的能量管理;②掌握DQN等算法在实际能源系统调度中的建模与实现方法;③为相关课题研究或项目开发提供代码参考和技术思路。; 阅读建议:建议读者结合提供的Python代码进行实践操作,理解环境建模、状态空间、动作空间及奖励函数的设计逻辑,同时可扩展学习其他强化学习算法在能源系统中的应用。
皮肤烧伤识别作为医学与智能技术交叉的前沿课题,近年来在深度学习方法推动下取得了显著进展。该技术体系借助卷积神经网络等先进模型,实现了对烧伤区域特征的高效提取与分类判别,为临床诊疗决策提供了重要参考依据。本研究项目系统整合了算法设计、数据处理及模型部署等关键环节,形成了一套完整的可操作性方案。 在技术实现层面,首先需要构建具有代表性的烧伤图像数据库,涵盖不同损伤程度及愈合阶段的临床样本。通过对原始图像进行标准化校正、对比度增强等预处理操作,有效提升后续特征学习的稳定性。网络架构设计需充分考虑皮肤病变的区域特性,通过多层卷积与池化操作的组合,逐步抽象出具有判别力的烧伤特征表示。 模型优化过程中采用自适应学习率调整策略,结合交叉熵损失函数与梯度下降算法,确保参数收敛的稳定性。为防止过拟合现象,引入数据扩增技术与正则化约束,增强模型的泛化能力。性能验证阶段采用精确率、召回率等多维度指标,在独立测试集上全面评估模型对不同烧伤类型的识别效能。 经过充分验证的识别系统可集成至医疗诊断平台,通过规范化接口实现与现有医疗设备的无缝对接。实际部署前需进行多中心临床验证,确保系统在不同操作环境下的稳定表现。该技术方案的实施将显著缩短烧伤评估时间,为临床医师提供客观量化的辅助诊断依据,进而优化治疗方案制定流程。 本项目的突出特点在于将理论研究与工程实践有机结合,既包含前沿的深度学习算法探索,又提供了完整的产业化实施路径。通过模块化的设计思路,使得医疗专业人员能够快速掌握核心技术方法,推动智能诊断技术在烧伤外科领域的实际应用。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值