最近发现论坛多了很多新来的朋友,于是决定发一些平时编程时用到的小技巧赚一些银两。
有时候在业务需求中,我们需要处理一些显示对象的拉伸变形、本地坐标和全局坐标转换等问题,这些都是不难但是很容易出错的地方,例如下面一些情况:
A. 你要查询影片剪辑A默认的宽高,却忘记曾今修改过A的scaleX或者scaleY属性,导致问题出现。所以这时候你要这样计算。
B. 影片剪辑A中包含影片剪辑B,你需要查询B的全局坐标以及B在屏幕上显示出来的宽高。但是A却有可能进行各种拉伸变形,不管A如何拉伸变形,A内部的坐标系是不会改变的。所以你可能不得不用localToGlobal函数和一系列的数学运算进行转换计算。
像前面说的问题以及通常情况下大部分的拉伸变形运算,灵活使用getRect函数都能够解决。
getRect()函数返回的是一个不常见的类型Rectangle,它包含x,y,widht,height四个属性,分别表示x坐标、y坐标、宽度、高度。很少使用getRect函数的人肯定会很奇怪,这些属性不都是可以直接从显示对象的属性取到么嘛,为什么还需要专门设置一个函数来返回这些属性呢?
其中的奥妙就在于getRect函数的参数targetCoordinateSpace,简单来说getRect函数返回的Rectangle中的属性都是相对于这个显示对象而言的。
当你把舞台作为参数传入的时候,得到的就是全局坐标和变形后的宽高,而不用管它在容器中嵌套的多深;
当你把自身作为参数传入的时候,得到的就是本地坐标和原始的宽高;
当你把另一个没有嵌套关系的显示对象作为参数传入的时候,得到的就是相对坐标和变形后的宽高。
当然其还有很多用途等待你的发现,我这里就不一一例举的。所以你会发现,这个函数为你做了大部分的坐标转换以及拉伸变形等计算,不用你绞尽脑汁的去苦恼了。
相关推荐
完成拉伸模拟后,我们可以使用可视化工具(如VMD、OVITO等)或者自定义脚本来对输出的数据进行后处理,包括绘制应力-应变曲线、计算杨氏模量等。这有助于我们理解材料的机械性能。 ### 六、LAMMPs与Fortran LAMMPs...
在Java编程语言中,放大和拉伸图像是一项常见的任务,主要涉及到图像处理和图形用户界面(GUI)开发。本文将详细讲解如何使用Java实现这一功能,主要包括以下知识点: 1. **Java AWT 和 Swing 图像处理库** Java...
在JavaScript中,我们可以使用`event.clientX`和`event.clientY`获取鼠标坐标,并结合CSS的`transform`属性来改变图片的位置。 其次,图片的旋转功能涉及到几何变换。在HTML5的Canvas中,可以使用`context.rotate()...
- 在`wheelEvent()`中,根据滚轮滚动方向调整图元的缩放比例,通常会使用`scale()`方法。 - 对于边角拉伸,你需要在`mouseMoveEvent()`中检测鼠标是否位于图元的四个角落,如果是,根据鼠标移动量调整宽高。 5. *...
本文将深入探讨如何使用JavaScript处理Canvas中的图片拉伸和缩放。 一、Canvas基本概念 Canvas是HTML5引入的一个绘图工具,通过JavaScript API可以实现对它的像素级操作。它是一个二维画布,开发者可以在这个画布上...
BitBlt用于位图的复制,而StretchBlt则可以实现位图的拉伸或缩放。在本例中,我们将使用StretchBlt来进行位图的缩放。 StretchBlt函数的原型如下: ```cpp BOOL StretchBlt( HDC hDC, // 目标设备上下文 int x, ...
在这个过程中,可以设置缩放比例,以保持原始图像的宽高比,避免拉伸或压缩图像导致变形。 5. **居中显示**: 为了使缩放后的图像居中显示,通常需要创建一个与缩放后图像大小相匹配的显示窗口。然后,可以通过...
总结来说,Android开发中实现背景滚动和图片拉伸的关键在于理解SurfaceView的工作原理以及Matrix类的使用。通过合理地调整背景的滚动速度和图片的缩放比例,我们可以创造出逼真的3D效果,增强游戏的视觉体验。同时,...
以上就是使用Go语言实现图片等比缩放并居中无拉伸的详细过程。通过这种方式,你可以灵活地处理各种图像,确保它们在不同场景下的显示效果。在实际应用中,你可能还需要考虑错误处理、图片格式转换和其他高级特性,但...
可以使用RectTransformUtility.ScreenPointToLocalPointInRectangle函数将触摸点转换为UI元素的局部坐标,从而进行精确碰撞检测。 6. **测试与调试**:在多种分辨率的设备上进行测试,确保所有功能在不同屏幕尺寸下...
2. **坐标类型**:绝对坐标、相对坐标、平面坐标都是Autocad中使用的坐标表示方式。绝对坐标基于原点(0,0,0)的坐标值,相对坐标相对于上一次或指定的点,平面坐标则是在某一平面上的坐标。 3. **复制图形**:使用...
1. **坐标获取**:输入快捷键 "ID" 可以获取CAD图中任意点的坐标。这对于精确放置或测量图形元素非常有用。 2. **绘图命令**: - `L` 或 `LINE`:绘制直线。 - `C` 或 `CIRCLE`:画圆。 - `A` 或 `ARC`:画圆弧...
拉伸STRETCH、比例缩放SCALE、长度调整LENGTHEN等操作可改变对象的大小和形状。修剪TRIM、打断BREAK、延伸EXTEND、倒角CHAMFER和倒圆FILLET则用于修改图形边缘。 图形对象的夹点允许快速执行移动、拉伸、缩放、旋转...
* 学习使用 SC SCALE 命令缩放图形 * 学习使用 S STRETCH 命令拉伸图形 * 学习使用 O OFFSET 命令偏移图形 * 学习使用 AR ARRAY 命令阵列图形 * 学习使用 MI MIRROR 命令镜像图形 * 学习使用 BR BREAK 命令断开图形 ...
本教程旨在帮助初学者快速熟悉AutoCAD的基本操作,包括界面认知、坐标系统以及绘图与编辑工具的使用。 一、认识AutoCAD 1. 启动与单位选择:AutoCAD支持英制和米制单位,用户可根据项目需求进行设置。启动时,可以...
标题中的“in文件,main文件,Fortran”指的是在计算模拟软件LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)中使用的输入文件。LAMMPS是一款强大的分子动力学模拟工具,广泛应用于材料科学、...
2. 缺省坐标系统:当打开AUTOCAD时,默认使用的是世界坐标系(WCS)。 3. 复制图形:若需要规则复制图形,通常使用“COPY”命令或“ARRAY”命令。其中,“ARRAY”命令提供了更多复制模式,如矩形阵列和环形阵列。 ...
- `drawBitmapMesh()`: 使用网格方式在Canvas上绘制Bitmap,适用于实现复杂的拉伸效果。 7. **高级绘图技术** - `drawLayer()`: 绘制图层,可以实现遮罩效果。 - `drawShadow()`: 绘制阴影。 - `clipRect()`, `...
- 可以通过“Transform/Curve/Scale”命令来拉伸一个圆形成椭圆。 - 使用“Utilities--Geometry--Create curve by function”命令创建椭圆。 - 例如:若要创建一个a=110,b=90的椭圆,则方程为`Y=SQRT(90**2*(1-...
4. **世界空间缩放**:若想在整个世界坐标系中缩放物体,可以在Inspector面板中直接修改Transform组件的Scale属性。 5. **脚本控制**:可以通过编写C#脚本来动态改变模型的缩放,例如: ```csharp public class ...