动画:关于matrix 的函数调用顺序的一些记录

Unity Tilemap动态缩放:基于Matrix4x4实现单个瓦片独立变换 在Unity 2D游戏开发中,Tilemap是管理网格化地图的核心组件,它通过批量渲染瓦片来优化性能。其渲染原理基于图形学中的变换矩阵,每个瓦片的位置和大小由模型-视图-投影矩阵决定。为了实现更灵活的视觉效果,如角色升级图标放大或选中高亮,需要突破Tilemap全局统一尺寸的限制。通过操作Matrix4x4矩阵,可以直接修改GPU渲染指令,在保持Tilemap合批性能的同时,为单个瓦片注入独立的缩放、旋转数据。这项技术特别适用于战棋、策略类游戏中需要动态改变单位视觉表现的场景,本文以动态缩放为例,详细解析了 阅读详情

在matrix 中的一些函数 preScale,postScale,preTranslate,postTranslate 等的记录。

matrix.preScale(0.5f, 1);  
matrix.preTranslate(10, 0); 
matrix.postScale(0.7f, 1);  
matrix.postTranslate(15, 0); 

我们在代码中实际调用的过程是

preSacle--->preTranslate--->postScale--->postTranslate
但是系统实际调用的过程是:
preTranslate--->preSacle--->postScale--->postTranslate
其实,无论你调用的顺序是什么样,最终的执行结果都是 preTranslate--->preSacle--->postScale--->postTranslate 这的顺序。

所以,preTranslate是指在setScale前平移,postTranslate是指在setScale后平移(和调用的顺序无关)。


要注意的是:
matrix 的setXXX方法会对之前调用preXXX和postXXX进行清空操作,之前的设置将会无效,之后才会有效。
比如:

matrix.preScale(0.5f, 1);  
matrix.postTranslate(10, 0); 
matrix.setScale(1, 0.6f); 
matrix.postScale(0.7f, 1); 
matrix.preTranslate(15, 0); 


实际执行的效果是:
preTranslate--->setScale--->postScale。因为setScale会清空matrx之前的设置。


同时, Canvas里scale, translate, rotate, concat方法都是pre方法,如果要进行更多的变换可以先从Canvas获得matrix, 变换后再设置回Canvas.,已达到我们想要的效果。


希望能对朋友们也有些帮助。




骨骼动画驱动的一般方法,以及使用FBX SDK的一些实现 我终于要更新博客了,进公司之后每天学的做的很多,但真正有时间去总结的时候很少。之后的话尽量每周都要做一个知识的总结和积累吧,一方面自己真的是做过就忘,另一方面也能够将自己踩到的坑,遇到的问题与大家分享一下。入职三个月吧第一个月最主要的事情就是在骨骼动画的驱动,一开始是研究的Assimp这个库,也实现了相应的功能,但后来发现坑实在是太多,对之后的扩展也不好,最后还是开始啃超级不友好的FBX SDK。... 阅读详情

相关推荐

javascript:实现matrix chainorder矩阵链顺序算法(附完整源码)

javascript:实现matrix chainorder矩阵链顺序算法(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 225

Android中Matrix的pre post set方法理解

虽说以前学习过线性代数和图形学原理,但是在实际中碰到matrix还是疑惑了好一阵子,今天通过向同事请教终于找到一点门路,特总结如下: Matrix主要用于对平面进行缩放,平移,旋转以及倾斜操作,为简化矩阵变换,Android封装了一系列方法来进行矩阵变换,其中包括pre系列方法:preScale,preTranslate,preRotate,preSkew,set系列方法:setScal...

mmdev 380

CCS20实战入门:第一个工程搭建示例

通过实际操作演示如何在ccs20中创建并配置首个开发项目,涵盖环境设置与基础调试步骤,帮助新手快速上手ccs20集成开发环境,提升嵌入式开发效率。

weixin_31185473的博客 884

Android中关于矩阵(Matrix)前乘后乘的一些认识

在上一篇文章中,我们讲到,在Android中,scale(缩放),rotation(旋转)和 translation(平移)都是以矩阵(Matrix)的形式定义的,实际上在图形学中,这些平面图形的变换都是以矩阵的形式存在的。先来回顾一下,下面,左中右分别scale(缩放),rotation(旋转)和 translation(平移)在Android中的矩阵表示: 如果只是单纯的应用某一个变换,...

xiaoheliushuiya 479

秋叶ComfyUI-v10中文整合包:全中文AI绘画一键部署与实战指南

Stable Diffusion作为当前主流的扩散模型,通过去噪过程从随机噪声生成高质量图像,其开源特性推动了AI绘画技术的普及。然而,其官方WebUI在自定义工作流和可复现性上存在局限,而基于节点流程的ComfyUI则提供了更高的自由度和工程化控制能力,尤其适合复杂、可重复的创作流程。对于中文用户而言,英文界面和提示词输入是主要障碍。秋叶出品的ComfyUI-v10中文整合包,正是针对这一痛点,提供了**全中文界面**和**原生中文提示词支持**的解决方案。该整合包将Python环境、依赖库及常用插件预配

weixin_33895475的博客 399

使用LogisticRegression和LightGBM模型对信贷违约进行预测----基于kaggle比赛数据

3.分离数值型变量与类别型变量,发现有些数值型变量因为输入不规范,比如数值中含有字符(28_,_10000_等)被划分为类别型变量 ,比如 'Age','Annual_Income','Num_of_Loan', 'Num_of_Delayed_Payment', 'Changed_Credit_Limit','Credit_Mix','Monthly_Balance', 'Outstanding_Debt' ,'Amount_invested_monthly'等。三、分箱,woe编码,计算IV值。

I_am_a_big_tiger的博客 1682

深入理解 Android 中的 Matrix

深入理解 Android 中的 Matrix在 Android 开发中,矩阵是一个功能强大并且应用广泛的神器,例如:用它来制作动画效果、改变图片大小、给图片加各类滤镜等。对于矩阵,Android 官方 SDK 为我们提供了一个强大的类 Matrix (还有 ColorMatrix )是一直困扰着我的问题,虽然大致能够调用相应的 API ,但却一直 get 不到其内在的梗。但是出来混总是别想着蒙混过...

D_clock爱吃葱花 1477

MaxEnt运行报错的各种问题及解决方法

由于我使用的环境数据并不是大部分人常用的worldclim上下载的气候数据,而是使用不同的四类环境数据,分别包括:降雨数据、气温数据、氮沉降数据和大气CO2浓度数据,数据需要分别从不同的网站下载,因此并不能得到非常一致的数据文件,导致MaxEnt运行时出现了各种各样的错误。文件终于能够读取了,然而计算到一半又弹出第三种问题,根据弹出的报错提示,找到错误所在那一行,用Notepad++打开,可以发现,这一行确实存在nan值,导致文件读取无法正常进行。出现上图所述的问题时,检查环境变量是否具有相同的行列号。

guye322的博客 1万+

Matrix中set/post/per区别

1、setScale(sx,sy),首先会将该Matrix设置为对角矩阵,即相当于调用reset()方法,然后在设置该Matrix的MSCALE_X和MSCALE_Y直接设置为sx,sy的值  2、preScale(sx,sy),不会重置Matrix,而是直接与Matrix之前的MSCALE_X和MSCALE_Y值结合起来(相乘),M' = M * S(sx, sy)。 3、pos

编程是一门艺术 1671

Android 13.0 开机启动优化之PMS扫描apk耗时相关功能优化

在android13.0的系统rom定制化开发中,在系统中开发产品时,会根据客户要求内置第三方app,这时如果内置app过多,或者安装的app过多,在系统开机的过程中 在pms扫描安装app的时候,就会比较耗时,这时候就需要优化下pms扫描安装app这块的功能代码,用多线程来实现pms扫描安装app,来加快开机时间,接下来 来实现这个功能

安卓兼职framework和app工程师的博客 1333

Allegro层叠中的Etch Factor-铜皮的腐蚀因子如何计算

在用Allegro进行PCB设计的时候,Cross-section中需要填入对应的信息,一般填入每层的厚度即可,如下图。当PCB需要进行仿真分析的时候,Etch-Factor这个值是必须要填写的,如下图。实际铜皮进行蚀刻的时候,Etch-Factor的值并不是标准的90度,如下图。线路层实际形状是个梯形,Etch-Factor代表的就是梯形的角度,如下图。首先输入数值,比如1,再点击Inv,最后点击tan-1,可以得到角度的值。如果tanσ=2,σ=63.4,如下图计算结果。即tanσ=1,得到σ=45。

weixin_54787054的博客 884

matrix.setScale,postScale,preScale

转自: http://blog.sina.com.cn/s/blog_c2918c770101gedj.html#post http://blog.youkuaiyun.com/upseven/article/details/92752071.matrix.setScale(interpolatedTime, interpolatedTime); matrix.preTranslate(-centerX,

seashine_yan的博客 2552

2026年江苏省职业院校技能大赛高职组“软件测试”赛项智能体辅助测试参考答案

2026年江苏省职业院校技能大赛高职组“软件测试”赛项智能体辅助测试参考答案

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 1323

动画:matrix 函数的调用顺序

在matrix 中的一些函数 preScale,postScale,preTranslate,postTranslate 等的记录。 view source 1 matrix.preScale(0.5f, 1);  2 matrix.preTranslate(10, 0);

ftbgy10的专栏 994

动态SLAM中的YOLO与ORB-SLAM3融合:实时目标检测与动态点云滤除实战

本文介绍了如何结合YOLOv5目标检测与ORB-SLAM3视觉SLAM系统,实现动态环境下的目标检测与视觉SLAM任务。文章详细阐述了从源码下载、依赖安装(包括libtorch配置)、编译运行步骤(包括ROS环境和非ROS环境下的编译方法),到RGBD-TUM数据集准备与关联处理的全流程。同时针对常见错误提供了解决方案,如libtorch路径配置、ROS环境冲突等。最后展示了系统运行方法,并探讨了未来可能的优化方向,包括增强目标检测能力和改进动态环境下的地图构建。该集成系统为机器人智能导航和环境感知提供了有

LXY_LOVE36的博客 236

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Android Matrix的理解

Android Matrix原理的理解和矩阵的左乘与右乘

RQ997832的专栏 1458

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

关于confusion_matrix()返回的矩阵的索引顺序(类别顺序)

转载至:https://blog.youkuaiyun.com/m0_38061927/article/details/77198990 1.混淆矩阵 混淆矩阵是机器学习中总结分类模型预测结果的情形分析表,以矩阵形式将数据集中的记录按照真实的类别与分类模型作出的分类判断两个标准进行汇总。这个名字来源于它可以非常容易的表明多个类别是否有混淆(也就是一个class被预测成另一个class) 下...

weixin_30487201的博客 1008

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

android动画应用,Android 动画

该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列。该系列引用了《Android开发艺术探索》以及《深入理解Android 卷Ⅰ,Ⅱ,Ⅲ》中的相关知识,另外也借鉴了其他的优质博客,在此向各位大神表示感谢,膜拜!!!前言该篇博客我们来说说Android动画的那些事。Android动画简介Android的动画是一个令人着迷的地方,不...

weixin_35899659的博客 193

MATRIX

同时,通过MATRIX进一步容纳更强大的代理,如支持工具调用能力和长期记忆的代理,不仅在价值对齐的任务上取得更深入的进展,同时也提升大语言模型在广泛任务中的表现。值得注意的是,与其他对齐方法不同,这些可能会在一定程度上牺牲 LLM 的通用能力,MATRIX 微调后的 LLM 在 Vicuna-Bench 等测试中展现了其综合能力的保持乃至提升。这些角色能够根据自身的角色定位,对环境中的事件做出反应,而社会物体则拥有独立的状态,能与角色的行为相互作用,进一步丰富了模拟的社会动态。whaosoft aiot h

whaosoft143ai的博客 540

C# Matrix类

Matrix类和图形的平移、变形、旋转 本节介绍使用Matrix类实现图形的平移、变形、旋转。 5.8.1 Matrix类 Matrix类封装了表示几何变形的3行3列仿射矩阵,可以记录图形的平移、变形、旋转等操作。主要包括如下方法: l 构造函数Matrix():创建一个空Matrix类对象。 l 方法Rotate:在Matrix类对象中增加相对于原点顺时针旋转指定角度的操作。参数指定旋转角度。 l 方法RotateAt:在Matrix类对象中增加相对于指定点顺时针旋转指定角度的操作。参数1指定旋转角

qi_1213的博客 3377

android Matrix图片的缩放和拖动

android为ImageView提供了scaleType的属性,在scaleType的属性值有多种,大部分是根据高和宽经行缩放,但是无法动态的缩放,只有matrix是可以进行动态缩放的,所以我们在这之前有必要了解一下matrix属性。 Matrix主要用于对平面进行平移(Translate),缩放(Scale),旋转(Rotate)以及斜切(Skew)操作。为简化矩阵变换,Android封装了一系列方法来进行矩阵变换,如下 set系列方法:setTranslate,setScale,setR

qq_33776306的博客 3018

简单Matrix 的方法说明记录

查找资料加上自己理解 ,简单说明Android中Matrix怎么用(新手有错误的地方,希望指正,主要自己记录学习用的) Matrix包含一个3 X 3的矩阵,专门用于图像变换匹配。Matrix提供了四种操作:translate(平移)rotate(旋转)scale(缩放)skew(倾斜)也就是说这4种操作都是对这个3 X 3的矩阵设值来达到变换的效果。Matrix没有结构体,它必须被初始化,通...

weixin_34377919的博客 189

nx.adjacency_matrix计算邻接矩阵与真实结果不一致:解决办法记录

nx.adjacency_matrix计算邻接矩阵与真实结果不一致:解决办法记录问题描述原来的代码实际运行输出理论结果调试过程解决方案修改后的代码修改代码后的运行结果函数说明 问题描述 我自己根据edgelist计算的邻接矩阵,与调用networkx.adjacency_matrix(g)返回的结果不一样,经过调试发现了问题原因以及解决办法,记录如下。 原来的代码 edgelist = [ (0, 1), (1, 3), (2, 4), (1,

yingluo54的博客 7349

Android——Matrix变换矩阵的探索(1)

本文是从个人学习过程中所记录的笔记中经过再次整理而得,所有观点仅代表个人理解,如有错误,还望指出。矩阵的基本原理标准矩阵标准矩阵又称为对角矩阵,它的形式如下: 1,0,0 0,1,0 0,0,1矩阵的运算原理矩阵的简单运算规则:左矩阵的一行的每个值,分别按顺序一一对应的乘上右矩阵的一列的值。也就是说

chice的博客 3049

关于Android Matrix pre post 的理解

前言最近由于项目需要,接触到矩阵相关的知识较多,在实践后于此做知识记录,方便下次用到的时候可以快速的捡起来。正文 理论上,矩阵是按照长方形阵列排列的复数或实数集合 实际上,从源码看Matrix是用于坐标变换的3x3的矩阵【本文讨论的是graphics包下的矩阵,非opengl包下的矩阵】 单个Matrix对象在Java层保留一个Native层对象的指针,在Native堆上进行实际内存分配、使用、回收

hey Man 1137

【鸿蒙实战开发】—— 动效开发(CSS动画)

设置scale样式属性实现涟漪动画,先使用定位确定元素的位置,确定坐标后创建多个组件实现重合效果,再设置opacity属性改变组件不透明度实现组件隐藏与显示,同时设置scale值使组件可以一边放大一边隐藏,最后设置两个组件不同的动画执行时间,实现扩散的效果。子组件设置scale属性使父子组件同时缩放,再设置opacity实现父子组件的显示与隐藏。transform-origin变换对象的原点位置,如果仅设置一个值,另一个值为50%,若设置两个值第一个值表示X轴的位置,第二个值表示Y轴的位置。

2401_88547687的博客 1164
上一篇: 使用android快速开发框架afinal 开发android应用程序
下一篇: 记录:android中imageview.ScaleType详细说明
michael_yy
博客等级 码龄14年 144粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值