彻底弄清 anchorPoint 和 position

article/2025/10/22 23:38:12

最近在研读《iOS Core Animation Advanced Techniques》这一本书,想系统地学习下关于 CALayer、Transition、以及动画等知识点。大家可以在 gitbook 上面找到该书的翻译版本。

传送门  

在读到图层几何学这一章的时候,了解到了两个概念:anchorPoint 和 position。之前一直把 position 当成是矩形的中心点,如同 UIView 的 center 属性(事实上,在不改变 anchorPoint 的前提下,它确实是图层的中心点),但当 anchorPoint 改变的时候,我一下子懵逼了,为什么 position 不会改变,为什么frame会改变,为什么图形要往某个特定方向移动,而使 anchorPoint 和 position 重合?什么鬼...

怀着一定要搞懂的心态,我去网上查询了很多帖子,有的看了也没懂,有的给了我很大启发。现在也想把自己的理解在这里分享一下:

说白了,position 是什么?其实就是图层(layer)在父图层(superLayer)中的位置,图层的 size 定下了,那么应该把它放在父图层的什么位置,不就是由 position 定的吗?此时,父图层就会告诉这个儿子:喂,小子,这个 position 就是你在我地盘上的位置,你啊,如果将来要做 transition 变换,默认是以这个点为基准的。

儿子:哦,那我到时候做旋转那肯定也绕着这个点转了。deimo(但是)... 我不想老是绕着我的肚脐眼转啊,一点也不刺激,“能不能绕着我的头转?” 儿子对它爸说。

父图层一听,好啊,你小子,有想法啊,“那行,绕着你的哪一点转都可以,不过,你必须还在我 给你的 position 位置转!你的 position 位置不能变!”

儿子想:那我只能挪挪我的 frame 咯,不然没法按照老子的要求转了。 于是,它把自己的 anchorPoint 点移到了 position 位置上,愉快地开始转了=。=

所以,总结一下,anchorPoint 是相对于自身的位置,而 position 是相对于父图层的,改变 anchorPoint 只是更改了图层自身旋转地位置,但始终还是要通过改变 frame 使 anchorPoint 和 position 重合,这样它老子才不会骂它😄, 不知道这样的方式大家能不能看懂啊:)

好了,我的第一次简书分享也告一段落了。有什么问题大家一定!要!指出来!!!拜托了!

改变 anchorPoint 前后对照图


http://chatgpt.dhexx.cn/article/vu1AZm9S.shtml

相关文章

Cocos2dx学习笔记9:cocos2dx锚点(Anchor Point)

锚点(AnchorPoint)是相对坐标,通常用来定义物体内部的点,在cocos2dx中,一般都是以加载精灵来实现游戏元素的表现,而精灵一般都是对应的一张图片资源。 我们在设置精灵位置的时候,要设置精灵中的锚点来和我们的坐标点相…

Anchorpoints学习笔记:

Anchor Detr学习笔记: 文章目录 Anchor Detr学习笔记:1.首先介绍下什么叫锚点(Anchor point)2.再来介绍下什么叫DETR3.Anchor Detr 1.首先介绍下什么叫锚点(Anchor point) ​   Anchor point就类似一张钉…

数学篇(三)向量的基本运算

1.平面向量 1.1平面向量的加法运算 两个向量,; 向量满足四边形法则; 1.2平面向量的乘法运算 两个向量,; 向量乘表示为 ; 相比于向量加运算,向量乘运算要复杂点,很难看明白向量乘的几何意…

2. 数据类型、向量、向量索引、向量修改、向量运算

b站课程视频链接:https://www.bilibili.com/video/BV19x411X7C6?p1 腾讯课堂(最新,但是要花钱,我花99元😢😢买了,感觉不错):https://ke.qq.com/course/3707827#term_id103855009 &a…

matlab 向量的基本运算

本文主要参考:王沫然编著的MATLAB与科学计算(第2版) 博客文章:点击打开链接 1、向量生成 1.1、直接输入 1.2、 xx0:step:xn 1.3、线性等分向量—linespace 1.4、对数等分向量—logspace 2、向量运算 21、加(减&#x…

向量复习(一):定义、求解、四则运算、点积和叉积

向量复习(一) 1. 向量的定义2. 向量的表示3. 向量的求解4. 向量的四则运算4.1 加法4.2 减法4.3 乘法和除法 5. 点积和叉积5.1 点积5.2 叉积 6. 模的求解7. 附录:代码8. 免责声明 首先,我们先来复习一下二维空间几何求交涉及的向量…

向量的基本运算专题

关于向量 高中数学必修 4 4 4说: 几何向量是线性空间中有大小与方向的量。 放图理解一下: 如上图所示,向量可以形象的用一根箭头表示。箭头所指代表向量的方向,线段的长度代表向量的大小。 在 O I OI OI中,我们简化了一下向量的…

向量加减法

常用向量&#xff1a; 2D向量 v < x , y > 3D向量 v < x , y , z > 4D向量 v < x , y , z , w > (也称作齐次坐标) 向量加减法&#xff0c;各维度都是类似的。 向量加法&#xff1a; 向量加法的和就是以两个向量的边作为平行四边形长边的对角线表示 …

两个向量的点乘和叉乘怎么算_数学基础 —— 向量运算:点乘和叉乘

向量的点乘:a * b 公式&#xff1a;a * b |a| * |b| * cosθ 点乘又叫向量的内积、数量积&#xff0c;是一个向量和它在另一个向量上的投影的长度的乘积&#xff1b;是标量。 点乘反映着两个向量的“相似度”&#xff0c;两个向量越“相似”&#xff0c;它们的点乘越大。 向量…

向量的运算

向量 有大小&#xff0c;有方向的量&#xff0c;记为 a ⃗ \vec{a} a 基本运算 向量的加法 首尾相连法则(当然还有其他名字:平行四边形法则、三角形法则) 如图 a ⃗ b ⃗ \vec{a}\vec{b} a b 就相当于将 b ⃗ \vec{b} b 的起点平移到 a ⃗ \vec{a} a 的终点( a ⃗ 、 b ⃗…

数学基础 —— 向量运算(叉乘)

向量的叉乘&#xff0c;即求同时垂直两个向量的向量&#xff0c;即c垂直于a&#xff0c;同时c垂直于b&#xff08;a与c的夹角为90&#xff0c;b与c的夹角为90&#xff09; c ab &#xff08;a.y*b.z-b.y*a.z , b.x*a.z-a.x*b.z , a.x*b.y-b.x*a.y&#xff09; 以上图为例a…

向量化运算

向量化运算OLAP Clickhouse、dorisDB(starrocks)、spark(2.x以后)、 hive&#xff08;0.13.0以后&#xff09;、presto SIMD SIMD全称Single Instruction Multiple Data&#xff0c;单指令多数据流&#xff0c;能够复制多个操作数&#xff0c;并把它们打包在大型寄存器的一组…

常用的几种向量运算法则

a ⋅ b b ⋅ a ab ba a⋅bb⋅a a ( b ⋅ c ) ≠ ( a ⋅ b ) c a(bc)≠(ab)c a(b⋅c)​(a⋅b)c ( a b ) ⋅ c a ⋅ c b ⋅ c (ab)c acbc (ab)⋅ca⋅cb⋅c a b − b a ab - ba ab−ba ( r a ) b a ( r b ) r ( a b ) , 其 中 r 是 标 量 (ra)ba(rb)r(ab),其中r是…

空间向量及其运算

平面内任意向量 p \boldsymbol{p} p都可以用两个不共线的向量 a \boldsymbol{a} a b \boldsymbol{b} b来表示&#xff0c;这是平面向量的基本定理。类似的我们定义&#xff0c;如果三个向量不共面&#xff0c;那么对空间中的任一向量 p \boldsymbol{p} p&#xff0c;存在有序实…

数学-向量运算

1、外积&#xff08;差乘&#xff09; 定义&#xff1a;向量a与b的外积ab是一个向量&#xff0c;其长度等于|ab| |a||b|sin∠(a,b)&#xff0c;其方向正交于a与b。并且&#xff0c;(a,b,ab)构成右手系。 特别地&#xff0c;0a a0 0.此外&#xff0c;对任意向量a&#xff0c…

向量

向量对数学家是数字列表 向量对程序员是数组 数学上区分向量和标量 速度和位移是向量&#xff0c;速率和长度是标量 向量的维度&#xff1a;数的个数 写法&#xff1a;横着写行向量&#xff0c;竖着写列向量 几何意义 大小&#xff1a;向量的长度 方向&#xff1a;空间中的…

MATLAB——向量的运算

文章目录 一.向量的定义&#xff1a;***向量的生成方法&#xff1a;直接输入法、冒号法和利用MATLAB函数创建三种方法。*** 二.向量元素的引用&#xff1a;三.向量的定义与赋值&#xff1a;四.向量的点积运算&#xff1a;向量的叉积&#xff1a;向量的混合积&#xff1a; 一.向…

【math】 向量运算:叉乘

文章目录 1 定义2 几何意义3 拓展应用 1 定义 cab 向量的叉乘&#xff0c;即求同时垂直两个向量的向量&#xff0c;即c垂直于a&#xff0c;且c垂直于b。 假设向量a(a.x,a.y,a.z),b(b.x,b.y,b.z),c(c.x,c.y,c.z)&#xff0c; 则cab(a.x,a.y,a.z)(b.x,b.y,b.z)(a.y * b.z - a…

了解向量运算

了解向量运算 向量运算是制作三维图形、物理和动画的基础&#xff0c;深入了解向量运算有助于充分利用 Unity 的大部分功能。下方介绍了主要的向量运算方法&#xff0c;以及将向量运算用于多种用途时的建议。 加法 两向量相加的值等于将两个向量首尾相接&#xff0c;以原向量为…

向量的基本运算

向量是什么 向量就是给定一个点A&#xff0c;连接原点到点A&#xff0c;并具有由O到A方向的连线&#xff0c;表示为 O A ⃗ \vec{OA} OA . 书本的定义&#xff1a;向量就是具有大小和方向东西。 大小(magnitude) 向量的大小(magnitude)写作 ∥ x ∥ \Vert x \Vert ∥x∥,称为…