前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Flash:DisplayObject的矩阵旋转(移动/修改注册点,修改旋转点)

Flash:DisplayObject的矩阵旋转(移动/修改注册点,修改旋转点)

作者头像
用户1258909
发布于 2018-07-04 03:22:31
发布于 2018-07-04 03:22:31
95500
代码可运行
举报
文章被收录于专栏:拂晓风起拂晓风起
运行总次数:0
代码可运行

简单来说,原理就是利用matrix运算,先把旋转点移到原点位置,旋转变换后再恢复到原来的位置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var a:Sprite = new Sprite();
a.graphics.beginFill(0);
a.graphics.drawRect(0,0,100,100);
a.graphics.drawCircle(0,0,6);
a.graphics.endFill();
addChild(a);
a.x = a.y = 100;
trace (a.transform.matrix);

var m:Matrix = a.transform.matrix.clone();
var dx :Number = m.tx;
var dy:Number = m.ty;
m.translate(-dx , -dy);            //把位移归零
m.translate(-50,-50);              //宽高的一半,设置旋转点到中心点
m.rotate(45/180*3.14);             //旋转45度,这个跟a.rotation略有不同

Matrix的具体用法详见:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/geom/Matrix.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013-09-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Flash:DisplayObject的transform/matrix的潜规则、小bug
AS3中,使用DisplayObject的transform/matrix,需要先clone出来,再变换,再赋值回去,这样才会对DisplayObject产生影响,不能直接对原Matrix操作。 详细见下边的代码: var a:Sprite = new Sprite(); a.graphics.beginFill(0); a.graphics.drawRect(0,0,100,100); a.graphics.endFill(); a.x = a.y = 10; addChild(a); trace (a.
用户1258909
2018/07/03
2840
Flash/Flex学习笔记(18):画线及三角函数的基本使用
Sprite有一个graphics可以用来绘制基本图形,比如我们要画下面这个图形: 对应的AS3代码为: package { import flash.display.Sprite; publ
菩提树下的杨过
2018/01/23
6690
Flash/Flex学习笔记(18):画线及三角函数的基本使用
Flash/Flex学习笔记(46):正向运动学
所谓"正向运动学"通俗点讲就是把几个连接部件的一端固定起来,另一个端可以自由(向前/向外)运动。比如人的行走,单个下肢可以理解为脚连接小腿,小腿连接大腿,大腿连接腰。行走的过程,相当于二条腿相对固定于腰部,大腿运动驱动小腿,小腿又驱动脚,从而带动整个连接系统的一系列运动。 先来一个基本的关节类Segment:(就是一个圆角矩形+二个小圆圈) package { import flash.display.Sprite; import flash.geom.Point; public class Seg
菩提树下的杨过
2018/01/23
6220
Flash/Flex学习笔记(46):正向运动学
Flash/Flex学习笔记(42):坐标旋转
坐标旋转是个啥概念呢? 如上图,(蓝色)小球 绕某一中心点旋转a角度后,到达(红色)小球的位置,则红色小球相对中心点的坐标为: x1 = dx * cos(a) - dy * sin(a) y1 = 
菩提树下的杨过
2018/01/23
7060
Flash/Flex学习笔记(42):坐标旋转
“AS3.0高级动画编程”学习:第一章高级碰撞检测
AdvancED ActionScript 3.0 Animation 是Keith Peters大师继"Make Things Move"之后的又一力作,网上已经有中文翻译版本了,打算下一阶段开始啃这本书。 今天开始学习高级碰撞检测,所用到的预备知识: 1、BitmapData的透明与不透明区别 位图数据(BitmapData)有二种模式,一种支持透明(即每个像素的值采用AARRGGBB这种32位颜色表示);另一种不支持透明度(即传统的RRGGBB这种24位颜色表示,简单点讲就是alpha分量默认为FF,
菩提树下的杨过
2018/01/19
1.5K0
眨个眼就学会了Pixi.js
当今的Web开发中,图形和动画已经成为了吸引用户注意力的重要手段之一。而 Pixi.js 作为一款高效、易用的2D渲染引擎,已经成为了许多开发者的首选(我吹的)。本文将为工友们介绍PixiJS的基础知识和使用方法,希望可以和工友们**快速光速入门**,掌握 Pixi.js 的用法。
德育处主任
2023/04/23
7.2K0
眨个眼就学会了Pixi.js
“AS3.0高级动画编程”学习:第四章 寻路(AStar/A星/A*)算法 (下)
在前一部分的最后,我们给出了一个寻路的示例,在大多数情况下,运行还算良好,但是有一个小问题,如下图: 很明显,障碍物已经把路堵死了,但是小球仍然穿过对角线跑了出来! 问题在哪里:我们先回顾一下ASta
菩提树下的杨过
2018/01/23
8980
“AS3.0高级动画编程”学习:第四章 寻路(AStar/A星/A*)算法 (下)
Flash/Flex学习笔记(41):碰撞检测
碰撞检测基本上可能分为二类:对象与对象的碰撞检测、对象与点的碰撞检测 为了方便测试,先写一个box类(生成一个小矩形) package { import flash.display.Sprite; public class Box extends Sprite { private var w:Number; private var h:Number; private var color:uint; public var vx:Number=0; public var v
菩提树下的杨过
2018/01/19
9680
Flash/Flex学习笔记(41):碰撞检测
Flash/Flex学习笔记(49):3D基础
之前我们所做的动画都是基于x,y二维坐标轴的,在三维动画中我们还需要增加一个垂直于屏幕“向里”或“向外”的Z轴,那么z轴到底是应该向外,还是向里呢?这个其实无所谓,不过为了统一,习惯上通常把z轴约定为
菩提树下的杨过
2018/01/22
9510
Flash/Flex学习笔记(49):3D基础
Flash/Flex学习笔记(47):反向运动学(上)
先回顾上篇所说的"正向运动学":以人行走的例子来说,基本上可以理解为大腿驱动小腿,小腿驱动脚,从而引发的一系列姿态调整和运动。再举一个例子,我们用着拿一根软鞭或链条的一端挥舞,被手挥舞的这一端会把"能量"向另一端传递(即固定端驱动紧接的部分,而紧接的部分又驱动下一段紧接的部分),从而使整个系统也随之运动. 而"反向运动学"正好相反,举个不恰当的例子,小时候估计很多人玩过“死”青蛙(之所以要说是死的,是为了排除活体的自主运动),用手去拖死青蛙的脚(即自由端),会发现拉脚的同时,也带动青蛙的大腿在拖动,进而拖动
菩提树下的杨过
2018/01/23
6450
Flash/Flex学习笔记(47):反向运动学(上)
Flash/Flex学习笔记(48):反向运动学(下)
先要复习一下三角函数与余弦定理: 对于直角三角形,三边长a,b,c与三个角A,B,C的关系如下: 正弦函数: 余弦函数: 正切函数: 反正切函数:(好象现在的教科书里改叫“余切”函数)   或 勾股
菩提树下的杨过
2018/01/23
5810
Flash/Flex学习笔记(48):反向运动学(下)
egret 学习笔记
继承自 DisplayObjectContainer > DisplayObject。
tonglei0429
2021/06/08
1.8K0
egret 学习笔记
Flash/Flex学习笔记(43):动量守恒与能量守恒
动能公式: 动量公式: 动量守恒: 能量守恒: 根据这些规律可以得到下列方程组: 解该方程组,得到下面的公式: 把这二个公式相减,可以得到: 即: 我们也经常利用这个公式简化运算 基本的动量守恒演示
菩提树下的杨过
2018/01/22
5030
Flash/Flex学习笔记(43):动量守恒与能量守恒
关于坐标旋转
在看<Flash actionscript动画教程>(中文版)的第十章的第二节,它提到“高级坐标旋转”,书中只给出了一个基本公式:
meteoric
2018/11/16
8630
“AS3.0高级动画编程”学习:第四章 寻路(AStar/A星/A*)算法 (中)
上一部分提到了节点(Node),代价(Cost),估价公式等基本概念,有了这些知识铺垫 就可以正式开启寻路之旅了! 如上图,这是一个5行8列的网格,黄色节点为起点,红色节点为终点,黑色节点为障碍物(节
菩提树下的杨过
2018/01/23
8740
“AS3.0高级动画编程”学习:第四章 寻路(AStar/A星/A*)算法 (中)
利用threshold实现的遮罩引导
点击“开始引导”,则进入引导操作。除指定的按钮可以操作外,其它区域均不可点击。这种应用当新功能或是新产品上线后,用来引导用户来使用产品/功能,是十分有用的。facebook也有类似的引导,方法也很简单:用4个绝对定位的DIV(指定一个背景 + 一定透明度)遮住其它部分,这样可以被操作的区域就“留空”出来。
meteoric
2018/11/16
6250
Flash/Flex学习笔记(23):运动学原理
先写一个公用的小球类Ball: package{ import flash.display.Sprite; //小球 类 public class Ball extends Sprite{ private var radius:Number ;//半径 private var color:uint;//颜色 public function Ball(r:Number=50,c:uint=0xff0000){ this.radius = r; this.color
菩提树下的杨过
2018/01/19
7940
Silverlight:Mouse Avoiding 躲避鼠标效果
昨晚在一国外博客上(从域名后缀pl上猜想应该是波兰)看到这种效果(Mouse Avoid 躲避鼠标),是基于Flash/AS3开发的,这个示例把弹性运动,摩擦力,均加速运动等多种物理学原理综合运用在一
菩提树下的杨过
2018/01/22
6870
Silverlight:Mouse Avoiding 躲避鼠标效果
Flash/Flex学习笔记(50):3D线条与填充
3D线条:把上一篇中的3D坐标旋转示例稍做修改,用线把各个小球连接起来即可。 var balls:Array; var numBalls:uint=30; var fl:Number=250; var vpx:Number=stage.stageWidth/2; var vpy:Number=stage.stageHeight/2; function init():void { balls=new Array(numBalls); for (var i:uint=0; i<numBalls; i++
菩提树下的杨过
2018/01/22
1.4K0
Flash/Flex学习笔记(50):3D线条与填充
as3 模拟“抛”的动作
以一个小球为示例,在鼠标点击的时修改它的加速度值(在短时间内移动的距离),加速度以一个值加速,在遇到边界时进行反向。
meteoric
2018/11/15
4120
相关推荐
Flash:DisplayObject的transform/matrix的潜规则、小bug
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验