transform 订阅
transform是一个函数命令,应用于指定范围的每个元素。 展开全文
transform是一个函数命令,应用于指定范围的每个元素。
信息
类    别
函数
作    用
应用于指定范围的每个元素
来    源
标准库
外文名
transform
transform解释
标准库 中的 transform
收起全文
精华内容
下载资源
问答
  • transform

    万次阅读 2018-02-08 21:43:28
    Transform字面上就是变形,改变的意思。在CSS3中transform主要包括以下几种:旋转rotate、扭曲skew、缩放scale和移动translate以及矩阵变形matrix。下面我们一起来看看CSS3中transform的旋转rotate、扭曲skew、缩放...

    Transform字面上就是变形,改变的意思。在CSS3transform主要包括以下几种:旋转rotate扭曲skew缩放scale移动translate以及矩阵变形matrix。下面我们一起来看看CSS3中transform的旋转rotate、扭曲skew、缩放scale和移动translate具体如何实现,老样子,我们就从transform的语法开始吧。

    语法:

    transform : none | [ ]* 也就是: transform: rotate | scale | skew | translate |matrix;

    none:表示不进么变换;表示一个或多个变换函数,以空格分开;换句话说就是我们同时对一个元素进行transform的多种属性操作,例如rotate、scale、translate三种,但这里需要提醒大家的,以往我们叠加效果都是用逗号(“,”)隔开,但transform中使用多个属性时却需要有空格隔开。大家记住了是空格隔开。

    取值:

    transform属性实现了一些可用SVG实现的同样的功能。它可用于内联(inline)元素和块级(block)元素。它允许我们旋转、缩放和移动元素,他有几个属性值参数:rotate;translate;scale;skew;matrix。下面我们分别来介绍这几个属性值参数的具体使用方法:

    一、旋转rotate

    rotate() :通过指定的角度参数对原元素指定一个2D rotation(2D 旋转),需先有transform-origin属性的定义。transform-origin定义的是旋转的基点,其中angle是指旋转角度,如果设置的值为正数表示顺时针旋转,如果设置的值为负数,则表示逆时针旋转。如:transform:rotate(30deg):

    二、移动translate

    移动translate我们分为三种情况:translate(x,y)水平方向和垂直方向同时移动(也就是X轴和Y轴同时移动);translateX(x)仅水平方向移动(X轴移动);translateY(Y)仅垂直方向移动(Y轴移动),具体使用方法如下:

    1、translate([, ]) :通过矢量[tx, ty]指定一个2D translation,tx 是第一个过渡值参数,ty 是第二个过渡值参数选项。如果未被提供,则ty以 0 作为其值。也就是translate(x,y),它表示对象进行平移,按照设定的x,y参数值,当值为负数时,反方向移动物体,其基点默认为元素中心点,也可以根据transform-origin进行改变基点。如transform:translate(100px,20px):

    2、translateX() : 通过给定一个X方向上的数目指定一个translation。只向x轴进行移动元素,同样其基点是元素中心点,也可以根据transform-origin改变基点位置。如:transform:translateX(100px):

    3、translateY() :通过给定Y方向的数目指定一个translation。只向Y轴进行移动,基点在元素心点,可以通过transform-origin改变基点位置。如:transform:translateY(20px):

    三、缩放scale

    缩放scale和移动translate是极其相似,他也具有三种情况:scale(x,y)使元素水平方向和垂直方向同时缩放(也就是X轴和Y轴同时缩放);scaleX(x)元素仅水平方向缩放(X轴缩放);scaleY(y)元素仅垂直方向缩放(Y轴缩放),但它们具有相同的缩放中心点和基数,其中心点就是元素的中心位置,缩放基数为1,如果其值大于1元素就放大,反之其值小于1,元素缩小。下面我们具体来看看这三种情况具体使用方法:

    1、scale([, ]):提供执行[sx,sy]缩放矢量的两个参数指定一个2D scale(2D缩放)。如果第二个参数未提供,则取与第一个参数一样的值。scale(X,Y)是用于对元素进行缩放,可以通过transform-origin对元素的基点进行设置,同样基点在元素中心位置;基中X表示水平方向缩放的倍数,Y表示垂直方向的缩放倍数,而Y是一个可选参数,如果没有设置Y值,则表示X,Y两个方向的缩放倍数是一样的。并以X为准。如:transform:scale(2,1.5):

    2、scaleX() : 使用 [sx,1] 缩放矢量执行缩放操作,sx为所需参数。scaleX表示元素只在X轴(水平方向)缩放元素,他的默认值是(1,1),其基点一样是在元素的中心位置,我们同样是通过transform-origin来改变元素的基点。如:transform:scaleX(2):

    3、scaleY() : 使用 [i,sy] 缩放矢量执行缩放操作,sy为所需参数。scaleY表示元素只在Y轴(垂直方向)缩放元素,其基点同样是在元素中心位置,可以通过transform-origin来改变元素的基点。如transform:scaleY(2):

    四、扭曲skew

    扭曲skew和translate、scale一样同样具有三种情况:skew(x,y)使元素在水平和垂直方向同时扭曲(X轴和Y轴同时按一定的角度值进行扭曲变形);skewX(x)仅使元素在水平方向扭曲变形(X轴扭曲变形);skewY(y)仅使元素在垂直方向扭曲变形(Y轴扭曲变形),具体使用如下:

    1、skew( [, ]) :X轴Y轴上的skew transformation(斜切变换)。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则值为0,也就是Y轴方向上无斜切。skew是用来对元素进行扭曲变行,第一个参数是水平方向扭曲角度,第二个参数是垂直方向扭曲角度。,其中第二个参数是可选参数,如果没有设置第二个参数,那么X轴和Y轴以同样的角度进行变形。同样是以元素中心为基点,我们也可以通过transform-origin来改变元素的基点位置。如:transform:skew(30deg,10deg):

    2、skewX() : 按给定的角度沿X轴指定一个skew transformation(斜切变换)。skewX是使元素以其中心为基点,并在水平方向(X轴)进行扭曲变行,同样可以通过transform-origin来改变元素的基点。如:transform:skewX(30deg)

    3、skewY() : 按给定的角度沿Y轴指定一个skew transformation(斜切变换)。skewY是用来设置元素以其中心为基点并按给定的角度在垂直方向(Y轴)扭曲变形。同样我们可以通过transform-origin来改变元素的基点。如:transform:skewY(10deg)

    五、矩阵matrix

    matrix(, , , , , ) : 以一个含六值的(a,b,c,d,e,f)变换矩阵的形式指定一个2D变换,相当于直接应用一个[a b c d e f]变换矩阵。就是基于水平方向(X轴)和垂直方向(Y轴)重新定位元素,此属性值使用涉及到数学中的矩阵,我在这里只是简单的说一下CSS3中的transform有这么一个属性值,如果有感兴趣的朋友可以去了解更深层次的martix使用方法,这里就不多说了。

    改变元素基点transform-origin

    前面我们多次提到transform-origin这个东东,他的主要作用就是让我们在进行transform动作之前可以改变元素的基点位置,因为我们元素默认基点就是其中心位置,换句话说我们没有使用transform-origin改变元素基点位置的情况下,transform进行的rotate,translate,scale,skew,matrix等操作都是以元素自己中心位置进行变化的。但有时候我们需要在不同的位置对元素进行这些操作,那么我们就可以使用transform-origin来对元素进行基点位置改变,使元素基点不在是中心位置,以达到你需要的基点位置。下面我们主要来看看其使用规则:

    transform-origin(X,Y):用来设置元素的运动的基点(参照点)。默认点是元素的中心点。其中X和Y的值可以是百分值,em,px,其中X也可以是字符参数值left,center,right;Y和X一样除了百分值外还可以设置字符值top,center,bottom,这个看上去有点像我们background-position设置一样;下面我列出他们相对应的写法:

    1、top left | left top 等价于 0 0 | 0% 0%

    2、top | top center | center top 等价于 50% 0

    3、right top | top right 等价于 100% 0

    4、left | left center | center left 等价于 0 50% | 0% 50%

    5、center | center center 等价于 50% 50%(默认值)

    6、right | right center | center right 等价于 100% 50%

    7、bottom left | left bottom 等价于 0 100% | 0% 100%

    8、bottom | bottom center | center bottom 等价于 50% 100%

    9、bottom right | right bottom 等价于 100% 100%

    其中 left,center right是水平方向取值,对应的百分值为left=0%;center=50%;right=100%而top center bottom是垂直方向的取值,其中top=0%;center=50%;bottom=100%;如果只取一个值,表示垂直方向值不变,我们分别来看看以下几个实例

    (1)transform-origin:(left,top):

    (2)transform-origin:right

    (3)transform-origin(25%,75%)

    更多的改变中心基点办法,大家可以在本地多测试一下,多体会一下,这里还要提醒大家一点的是,transform-origin并不是transform中的属性值,他具有自己的语法,前面我也说过了,说简单一点就是类似于我们的background-position的用法,但又有其不一样,因为我们background-position不需要区别浏览器内核不同的写法,但transform-origin跟其他的css3属性一样,我们需要在不同的浏览内核中加上相应的前缀,下面列出各种浏览器内核下的语法规则:

    //Mozilla内核浏览器:firefox3.5+ -moz-transform-origin: x y; //Webkit内核浏览器:Safari and Chrome -webkit-transform-origin: x y; //Opera -o-transform-origin: x y ; //IE9 -ms-transform-origin: x y; //W3C标准 transform-origin: x y ;

    transform在不同浏览器内核下的书写规则

    //Mozilla内核浏览器:firefox3.5+ -moz-transform: rotate | scale | skew | translate ; //Webkit内核浏览器:Safari and Chrome -webkit-transform: rotate | scale | skew | translate ; //Opera -o-transform: rotate | scale | skew | translate ; //IE9 -ms-transform: rotate | scale | skew | translate ; //W3C标准 transform: rotate | scale | skew | translate ;

    上面列出是不同浏览内核transform的书写规则,如果需要兼容各浏览器的话,以上写法都需要调用。

    支持transform浏览器

    同样的transform在IE9下版本是无法兼容的,之所以有好多朋友说,IE用不了,搞这个做什么?个人认为,CSS3推出来了,他是一门相对前沿的技术,做为Web前端的开发者或者爱好者都有必要了解和掌握的一门新技术,如果要等到所有浏览器兼容,那我们只能对css3说NO,我用不你。因为IE老大是跟不上了,,,,纯属个人观点,不代表任何。还是那句话,感兴趣的朋友跟我一样,不去理会IE,我们继续看下去。

    在上面我们详细介绍了CSS3中transform的各种属性值的设置以及其各自的参数,下面我们通过一个实例来看看每一种属性值的使用,为了节约空间和大家的时间,我们后面的实例都是在这个html基础上实现,主要是我们在下面的菜单中的a:hover中分别使用不同的transform的设置,换句话说,当你移动到链接上时,相应的每一个菜单项有不同的变化,因为我们在每个菜单中使用了transform。具体每一步我们可以看下面的实例:

    HTML Code:

    
    
    
    
    

    为了效果更好一点,我们给上面的导航菜单加上一点CSS样式:

    .menu ul { border-top: 15px solid black; padding: 0 10px; } .menu ul li a{ color: #fff; float: left; margin: 0 5px; font-size: 14px; height: 50px; line-height: 50px; text-align: center; width: 65px; padding: 10px 5px; background: #151515; -moz-border-radius: 0 0 5px 5px; -webkit-border-radius: 0 0 5px 5px; border-radius: 0 0 5px 5px; -moz-box-shadow: 0 0 1px #ccc,inset 0 0 2px #fff; -webkit-box-shadow: 0 0 1px #ccc,inset 0 0 2px #fff; box-shadow: 0 0 1px #ccc,inset 0 0 2px #fff; text-shadow: 0 1px 1px #686868; text-decoration: none; } .menu ul li.translate a{ background: #2EC7D2; } .menu ul li.translate-x a { background: #8FDD21; } .menu ul li.translate-y a { background: #F45917; } .menu ul li.rotate a { background: #D50E19; } .menu ul li.scale a { background: #cdddf2; } .menu ul li.scale-x a { background: #0fDD21; } .menu ul li.scale-y a { background: #cd5917; } .menu ul li.skew a { background: #519; } .menu ul li.skew-x a { background: #D50; } .menu ul li.skew-y a { background: #E19; } .menu ul li.matrix a { background: #919; }

    在这里我们使用了一些前面所进的CSS3的属性制作出来的导航,如果你跟着做的话,在你本地一定能看到一个非常靓丽的导航菜单,这里由于无法链接demo原页面,只好贴上缩略图,让大家有一个初步效果视觉初步的效果如下:

    从效果图上我们可以清楚的看到菜单上我们分别对应的是transform中的Translate、TranslateX、TranslateY、Rotate、Scale、ScaleX、ScaleY、Skew、SkewX、SkewY和Matrix,下面我们就在相应的a:hover加上各自的效果:

    1、transform:translate(x,y):

    .menu ul li.translate a:hover { -moz-transform: translate(-10px,-10px); -webkit-transform: translate(-10px,-10px); -o-transform: translate(-10px,-10px); -ms-transform: translate(-10px, -10px); transform: translate(-10px,-10px); }

    效果:

    2、transform:translateX(x)

    .menu ul li.translate-x a:hover { -moz-transform: translateX(-10px); -webkit-transform: translateX(-10px); -o-transform: translateX(-10px); -ms-transform: translateX(-10px); transform: translateX(-10px); }

    效果:

    3、transform:translateY(y)

    .menu ul li.translate-y a:hover { -moz-transform: translateY(-10px); -webkit-transform: translateY(-10px); -o-transform: translateY(-10px); -ms-transform: translateY(-10px); transform: translateY(-10px); }

    效果:

    4、transform:rotate(角度值)

    .menu ul li.rotate a:hover { -moz-transform: rotate(45deg); -webkit-transform: rotate(45deg); -o-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }

    效果:

    5、transform:scale(x,y)

    .menu ul li.scale a:hover { -moz-transform: scale(0.8,0.8); -webkit-transform: scale(0.8,0.8); -o-transform: scale(0.8,0.8); -ms-transform: scale(0.8,0.8); transform: scale(0.8,0.8); }

    效果:

    6、transform:scaleX(x)

    .menu ul li.scale-x a:hover { -moz-transform: scaleX(0.8); -webkit-transform: scaleX(0.8); -o-transform: scaleX(0.8); -ms-transform: scaleX(0.8); transform: scaleX(0.8); }

    效果:

    7、transform:scaleY(y)

    .menu ul li.scale-y a:hover { -moz-transform: scaleY(1.2); -webkit-transform: scaleY(1.2); -o-transform: scaleY(1.2); -ms-transform: scaleY(1.2); transform: scaleY(1.2); }

    效果:

    8、transform:skew(x,y)

    .menu ul li.skew a:hover { -moz-transform: skew(45deg,15deg); -webkit-transform: skew(45deg,15deg); -o-transform: skew(45deg,15deg); -ms-transform: skew(45deg,15deg); transform: skew(45deg,15deg); }

    效果:

    9、transform:skewX(x)

    .menu ul li.skew-x a:hover { -moz-transform: skewX(-30deg); -webkit-transform: skewX(-30deg); -o-transform: skewX(-30deg); -ms-transform: skewX(-30deg); transform: skewX(-30deg); }

    效果:

    10、transform:skewY(y)

    .menu ul li.skew-y a:hover { -moz-transform: skewY(30deg); -webkit-transform: skewY(30deg); -o-transform: skewY(30deg); -ms-transform: skewY(30deg); transform: skewY(30deg); }

    效果:

    11、transform:matrix(a,b,c,d,e,f)

    .menu ul li.matrix a:hover { -moz-transform: matrix(1,1,-1,0,0,0); -webkit-transform: matrix(1,1,-1,0,0,0); -o-transform: matrix(1,1,-1,0,0,0); -ms-transform: matrix(1,1,-1,0,0,0); transform: matrix(1,1,-1,0,0,0); }

    效果:

    transform中的matrix是相对的复杂,如果感兴趣的朋友可以点这里进去学民更多有关于Matrix的用法,我在这里就不多说了,说了也讲不清楚。

    下面我们来看看最终的效果图,如果你在本地跟着这个实例做了的话,那么你就能看到非常好的效果了。

    上面的实例效果展示了有关于transform中各种风格效果,这里需要提醒大家,我们上面的效果都是以元素自身的中心点为基点的,下面我们来看一个改变元素基点的实例

    我们在前面的实例基础改变一下所有a标签基点位置为left top(前面默认是center center)

    .menu ul li.transform-origin a { -moz-transform-origin: left top; -webkit-transform-origin: left top; -o-transform-origin: left top; -ms-transform-origin: left top; transform-origin: left top; }

    大家一起看看改变了a标签基点后transform下各种效果有什么样的变化:

    从效果图中大家可以明显的看出,改变元素的基点后。元素进行transform任何属性值的设置都会有影响,换句话说,我们transform进行任何动作变化都是以元素的中心为基点,同时我们可以通过transform-origin来改变任何元素的基点,从而达到不同的效果。感兴趣的朋友可以去了解更多有关这方面的知识。

    最后我们再来看一个transform运用多个属性值的效果实例

    .demo a{ width: 100px; padding: 5px; background: red; display: block; } .demo a:hover { -moz-transform: rotate(45deg) scale(0.8,1.2) skew(60deg,-30deg); -webkit-transform: rotate(45deg) scale(0.8,1.2) skew(60deg,-30deg); -o-transform: rotate(45deg) scale(0.8,1.2) skew(60deg,-30deg); -ms-transform: rotate(45deg) scale(0.8,1.2) skew(60deg,-30deg); transform: rotate(45deg) scale(0.8,1.2) skew(60deg,-30deg); }

    这里需要注意的是使用多个属性值时,其之间不能用逗号(“,”)分隔,必须使用空格分隔,记住了是空格分隔,如上面代码所示。

    那么到这有关于CSS3的transform就介绍完了。那么到目前为止我们一起学习了CSS3中的:渐变CSS3 Gradient、透明色CSS3 RGBA、圆角CSS3 Border-radius、文字阴影CSS3 Text-shadow、边框阴影CSS3 Box-shadow和今天的变形transform六个属性的使用方法

       
    展开全文
  • Transform

    千次阅读 2015-11-01 22:51:40
    Transform 继承自:Component 一个对象的位置、旋转和缩放。 场景中每个对象都有一个Transform。它被用来存储和操作对象的位置、旋转和缩放。每一个Transform都可以有一个父级,允许你分层次的运用位置、旋转和...

    http://docs.unity3d.com/ScriptReference/Transform.html


    Transform

    继承自:Component


    一个对象的位置、旋转和缩放。

    场景中每个对象都有一个Transform。它被用来存储和操作对象的位置、旋转和缩放。每一个Transform都可以有一个父级,允许你分层次的运用位置、旋转和缩放。Hierarchy面板有层级关系。他们也支持计数器,所以你可以遍历子物体。

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Example() {
            foreach (Transform child in transform) {
                child.position += Vector3.up * 10.0F;
            }
        }
    }

    Variables

    childCount

    类型:int

    Transform的子物体的个数。(只返回一级子物体的个数,子物体下的子物体不计数)

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Example() {
            print(transform.childCount);
        }
    }

    eulerAngles

    类型:Vector3

    以角度为单位,以欧拉角计算的旋转。

    x, y, z角代表绕z轴旋转z度,绕x轴旋转x度,绕y轴旋转y度。

    仅使用这个变量来读取和设置脚的绝对的值。不要递增他们,超过360度时它将失败。使用Transform.Rotate来代替。

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        public float yRotation = 5.0F;
        void Update() {
            yRotation += Input.GetAxis("Horizontal");
            transform.eulerAngles = new Vector3(10, yRotation, 0);
        }
        void Example() {
            print(transform.eulerAngles.x);
            print(transform.eulerAngles.y);
            print(transform.eulerAngles.z);
        }
    }
    不要单独的设置一个轴的角度,因为它将导致偏移和不希望的旋转。当设置一个新值时,一次性全部设置他们,就像上面所示。unity会转换欧拉角度到Transform.rotation或将Transform.rotation转换到欧拉角度。


    forward

    类型:Vector3

    世界坐标系中蓝色的轴,也就是Z轴。

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        public float thrust;
        public Rigidbody rb;
        void Start() {
            rb = GetComponent<Rigidbody>();
        }
        void Update() {
            rb.AddForce(transform.forward * thrust);
        }
    }
    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        public float angleBetween = 0.0F;
        public Transform target;
        void Update() {
            Vector3 targetDir = target.position - transform.position;
            angleBetween = Vector3.Angle(transform.forward, targetDir);
        }
    }
    hasChanged

    类型:bool

    上一次这个标签设置为fsalse后transform改变过吗?

    对变换的任何改变会导致矩阵的重新计算:任意调节它的位置、旋转或缩放。请注意此操作,是否在设置此标识之前新旧的值不同,也将不会实际检查。因此,对于实例化,transform.position将总是设置此变换的hasChanged,无论是否有实际的变化。

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Update() {
            if (transform.hasChanged) {
                print("The transform has changed!");
                transform.hasChanged = false;
            }
        }
    }
    localEulerAngle

    类型:Vector3

    以角度为单位,相对于父级transform的旋转。

    x, y, z角度代表绕z轴旋转z度,绕x轴旋转x度,绕y轴旋转y度。

    仅使用这个变量去读取和设置绝对的角度的值。不要递增它们,当角度超过360度时它将失败,使用Transform.Rotate代替。

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Example() {
            print(transform.localEulerAngles.x);
            print(transform.localEulerAngles.y);
            print(transform.localEulerAngles.z);
        }
    }
    Unity自动转换这些角度到Transform.loaclRotation,反之亦然。


    localPosition

    类型:Vector3

    相对于父级transform,当前transform的位置。

    如果当前transform没有父级,它与Transform.position的值一样。

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Example() {
            transform.localPosition = new Vector3(0, 0, 0);
            print(transform.localPosition.y);
        }
    }
    注意当计算世界坐标系的位置时,父级transform的世界坐标系的旋转和缩放会作用于当前位置。也就是说,Transform.position的1unit就是1unit,而transform.localposition的1unit会因为父级的缩放而缩放。


    localScale

    类型:Vector3

    相对于父级transform,当前transform的缩放。

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Example() {
            // Widen the object by 0.1
            transform.localScale += new Vector3(0.1F, 0, 0);
        }
    }

    localRotation

    类型:Quaternion

    相对于父级transform,当前transform的旋转。

    Unity以四元数来存储rotation。要旋转一个对象,使用Transform.Rotate。要以欧拉角度来改变旋转,使用Transform.localEulerAngles。

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Example() {
            transform.localRotation = Quaternion.identity;
        }
    }

    localToWorldMatrix

    类型:matrix4x4

    一个点从自身坐标系转换到世界坐标系的矩阵。(只读)

    如果你对使用矩阵来转换坐标不熟悉,使用 Transform.TransformPoint代替。

    重要:如果你在设置着色器参数你必须使用Renderer.localToWoldMarix代替。



    lossyScale

    类型:Vector3

    对象的全局缩放(只读)(世界坐标系的缩放)

    请注意如果你有一个缩放的父级transform并且子级是任意旋转,那么这个缩放有偏差。因此缩放不能由3个组件的向量正确表示,而是用3X3的矩阵。然而这种表述方式工作起来非常不方便。lossyScale是一个非常方便的属性来表示真实世界的缩放。如果你的对象没有偏差,这个值将是完全正确的,如果物体包含偏差,这个值也不会有很大不同。

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Example() {
            print(transform.lossyScale);
        }
    }
    (这个值就是物体在世界坐标系中的缩放,缩放是有损的是因为并不精确,它就是错误的如果它的一个或者多个父级有不同的x, y, z的缩放或者旋转。如果父级的缩放是统一的那么它就是完全正确的。如果父级的旋转是:0.1,0.5,0.4,lossyScale会接近但并不是非常精确。如果父级的缩放是:0.1,0.1,0.1,lossyScale是精确的。)


    parent

    类型:Transform

    transform的父级

    改变父级会改变相对于父级的位置、缩放和旋转信息,但是不会改变世界坐标系的位置、旋转和缩放。

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour
    {
    	public GameObject player;
    
    	//Invoked when a button is pressed.
    	public void Example(GameObject newParent)
    	{
    		//Makes the GameObject "newParent" the parent of the GameObject "player".
    		player.transform.parent = newParent.transform;
    			
    		//Display the parent's name in the console.
    		Debug.Log ("Player's Parent: " + player.transform.parent.name);
    
    		// Check if the new parent has a parent GameObject.
    		if(newParent.transform.parent != null)
    		{
    			//Display the name of the grand parent of the player.
    			Debug.Log ("Player's Grand parent: " + player.transform.parent.parent.name);
    		}
    	}
    }
    另一个例子:

    // Detaches the transform from its parent.
    	transform.parent = null;

    position

    类型:Vector3

    transform在世界坐标系的位置

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Example() {
            transform.position = new Vector3(0, 0, 0);
            print(transform.position.x);
        }
    }
    right

    类型:Vector3

    对象的自身坐标系的x轴在世界坐标系中指向的方向。


    root

    类型:Transform

    层级关系中最上层的transform。

    (永远不会返回null,如果transform没有父级则返回他自己)

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void OnCollisionEnter(Collision collision) {
            if (collision.transform.root != transform.root)
                print("The colliding objects are not in the same hierarchy");
            
        }
    }
    rotation

    类型:Quaternion

    保存在四元数中的transform在世界坐标系中的旋转。

    Unity以四元数保存旋转。要旋转一个对象,使用Transform.Rotate。要以欧拉角设置旋转,使用Transform.eulerAngles

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Example() {
            transform.rotation = Quaternion.identity;
        }
    }
    另一个例子:

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        public float smooth = 2.0F;
        public float tiltAngle = 30.0F;
        void Update() {
            float tiltAroundZ = Input.GetAxis("Horizontal") * tiltAngle;
            float tiltAroundX = Input.GetAxis("Vertical") * tiltAngle;
            Quaternion target = Quaternion.Euler(tiltAroundX, 0, tiltAroundZ);
            transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * smooth);
        }
    }
    up

    类型:Vector3

    世界坐标系中,transform的绿色的轴。


    worldToLocalMatrix

    类型:Matrix4x4

    矩阵转换一个点从世界坐标系到自身坐标系(只读)

    如果你不熟悉使用矩阵来转换坐标,使用Transform.InverseTransformPoint 代替

    重要:如果设置着色器参数,你必须使用Renderer.worldToLocalMatrix代替




    Public Functions

    DetachChildren

    类型:void DetachChildren()

    和所有子级解除父子关系。

    如果你想销毁一个层级关系的根对象而不想销毁子对象,会用到这个函数。

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Example() {
            transform.DetachChildren();
            Destroy(gameObject);
        }
    }
    Find

    类型:Transform Find(string name)

    参数:

    name: 要找的子级的名字。


    通过name找到一个子级并返回它。

    如果没有找到name子级,返回null。如果name包含一个'/'字符,它会将其作为层级的路径名。(只返回一级子级,多级子级必须按路径查找)

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour
    {
    	public GameObject player;
    	public GameObject gun;
    	public Transform ammo;
    
    	//Invoked when a button is clicked.
    	public void Example()
    	{
    		//Finds and assigns the child of the player named "Gun".
    		gun = player.transform.Find("Gun").gameObject;
    
    		//If the child was found.
    		if(gun != null)
    		{
    			//Find the child named "ammo" of the gameobject "magazine" (magazine is a child of "gun").
    			ammo = gun.transform.Find("magazine/ammo");
    		}
    		else Debug.Log("No child with the name 'Gun' attached to the player");
    	}
    }

    GetChild

    类型:Transform GetChild(int index)

    参数:

    index: 要返回的子transform的索引。必须比Transform.childCount小。

    返回:  索引为index的子级transform

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour
    {
    	public Transform meeple;
    	public GameObject grandChild;
    
    	public void Example()
    	{
    		//Assigns the transform of the first child of the Game Object this script is attached to.
    		meeple = this.gameObject.transform.GetChild(0);
    
    		//Assigns the first child of the first child of the Game Object this script is attached to.
    		grandChild = this.gameObject.transform.GetChild(0).GetChild(0).gameObject;
    	}
    }

    GetSiblingIndex

    类型:int GetSiblingIndex()


    会的同级索引。(即自己在所在层级的索引)



    InverseTransformDirection

    类型:Vector3 InverseTransformDirection(Vector3 direction)


    从世界坐标系转换一个direction到自身坐标系。与Transform.TransformDirection相反

    这个操作不受缩放影响。

    你用该使用Transform.InverseTransformPoint如果向量是空间的点而不是方向。


    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        private Vector3 relative;
        void Example() {
            relative = transform.InverseTransformDirection(Vector3.forward);
            Debug.Log(relative);
        }
    }
    2. public  Vector3 InverseTransformDirection(float x, float y, float z)

    同上

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        private Vector3 relative;
        void Example() {
            relative = transform.InverseTransformDirection(0, 0, 1);
            Debug.Log(relative);
        }
    }



    InverseTransformPoint

    类型:Vector3 InverseTransformPoint(Vector3 position)


    将position从世界坐标系转换到自身坐标系。

    这个函数与Transform.TransformPoint相反,后者被用来从自身坐标系转换到世界坐标系。

    注意返回值受缩放影响。如果你在处理方向向量而不是位置向量,使用Transform.InverseTransformDirection。

    	// Calculate the transform's position relative to the camera.
    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        public Transform cam;
        public Vector3 cameraRelative;
        
        void Start() {
    		cam = Camera.main.transform;
    		Vector3 cameraRelative = cam.InverseTransformPoint(transform.position);
    
            if (cameraRelative.z > 0)
                print("The object is in front of the camera");
            else
                print("The object is behind the camera");
        }
    }
    2. public Vector3 InverseTransformPoint(float x, float y, float z);

    同上

    	// Calculate the world origin relative to this transform.
    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Start() {
            Vector3 relativePoint = transform.InverseTransformPoint(0, 0, 0);
            
            if (relativePoint.z > 0)
                print("The world origin is in front of this object");
            else
                print("The world origin is behind of this object");
        }
    }

    InverseTransformVector

    类型:Vector3 InverseTransformVector(Vector3 vector)

    将一个vector从世界坐标系转换到自身坐标系。Transform.TransformVector函数的反面。受缩放影响。


    2.  public Vector3 InverseTransformVector(float x, float y, float z);

    同上



    IsChildOf

    类型:bool IsChildOf(Transform parent)

    当前的transform是否是parent的子级?

    返回一个布尔值表明这个transform是否是给出的transform的子级。如果这个transform是个子级、多级子级(子级的子级)或完全就是它自己,返回true,否则返回false。

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void OnTriggerEnter(Collider col) {
            if (col.transform.IsChildOf(transform))
                return;
            
            print("Do something here");
        }
    }

    LookAt

    类型: void LookAt(Transform target, Vector3 worldUp = Vector3.up);

    参数:

    target : 要朝向的对象

    worldUp: 指定向上的方向的向量


    旋转transform,使前方朝向target的位置。

    然后它旋转transform使他的向上的方向向量指向worldup向量示意的方向。如果worldup参数为空,函数默认使用世界坐标系y轴。worldup只是一个示意向量。如果向前的方向垂直于worldup,向上的向量只匹配worldup向量。

    // This complete script can be attached to a camera to make it 
    	// continuously point at another object.
    	
    	// The target variable shows up as a property in the inspector. 
    	// Drag another object onto it to make the camera look at it.
    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        public Transform target;
        
        void Update() {
        	// Rotate the camera every frame so it keeps looking at the target 
            transform.LookAt(target);
        }
    }
    2.  public void LookAt(Vector3 worldPositionVector3 worldUp = Vector3.up);

    同上


    Rotate

    类型:Rotate(Vector3 eulerAngles, Soace relativeTo=Space.Self)


    绕z轴旋转eulerAngles.z度,绕x轴旋转eulerAngles.x度,绕y轴旋转eulerAngles.y度(按照这个顺序)。

    如果没有设置relativeTo,旋转绕着自身坐标系旋转。如果relativeTo设置为Space.World,绕世界坐标系旋转

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Update() {
            transform.Rotate(Vector3.right * Time.deltaTime);
            transform.Rotate(Vector3.up * Time.deltaTime, Space.World);
        }
    }
    2. public void Rotate(float xAngle, float yAngle, float zAngleSpacerelativeTo = Space.Self);

    同上


    3.  public void Rotate(Vector3 axis, float angleSpace relativeTo = Space.Self);

    绕着axis旋转angle度。

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Update() {
            transform.Rotate(Vector3.right, Time.deltaTime);
            transform.Rotate(Vector3.up, Time.deltaTime, Space.World);
        }
    }


    RotateAround

    类型: void RotateAround(Vector3 point, Vector3 axis, float angle);


    世界坐标系中,绕着穿过point点的axis轴旋转angle度。

    这个函数同时改变transform的位置和旋转

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Update() {
            transform.RotateAround(Vector3.zero, Vector3.up, 20 * Time.deltaTime);
        }
    }

    SetAsFirstSibling

    类型:void SetAsFirstSibling()


    移动transform到自身所在transform列表的开端。(把transform移动到当前层级的第一个位置)

    using UnityEngine;
    using System.Collections;
    using UnityEngine.UI; //Required when using UI Elements.
    using UnityEngine.EventSystems; // Required when using event data.
    
    public class ExampleClass : MonoBehaviour, IPointerDownHandler
    {
    	public RectTransform panelRectTransform;
    
    	//Invoked when the mouse pointer goes down on a UI element. 
    	public void OnPointerDown (PointerEventData data) 
    	{
    		// Puts the panel to the back as it is now the first UI element to be drawn.
    		panelRectTransform.SetAsFirstSibling ();
    	}
    }

    SetAsLastSibling

    类型: void SetAsLastSibling();

    移动transform到transform列表的末端。

    using UnityEngine;
    using System.Collections;
    using UnityEngine.UI; //Required when using UI Elements.
    using UnityEngine.EventSystems; // Required when using event data.
    
    public class ExampleClass : MonoBehaviour, IPointerDownHandler
    {
    	public RectTransform panelRectTransform;
    
    	//Invoked when the mouse pointer goes down on a UI element. 
    	public void OnPointerDown (PointerEventData data) 
    	{
    		// Puts the panel to the front as it is now the last UI element to be drawn.
    		panelRectTransform.SetAsLastSibling ();
    	}
    }

    SetParent

    类型: void SetParent(Transform parent, bool worldPositionStays)

    参数:

    parent: transform要使用的父级

    worldPositionStays: 如果为真,相对父级的位置、缩放和旋转被改变所以对象可以保持以前的世界坐标系中的位置、旋转和缩放。


    设置transform的父级。

    这个函数与parent属性一样,除了它可以通过设置worldPositionStays属性为false让transform保持他的局部坐标不变。

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour
    {
    	public GameObject player;
    
    	//Invoked when a button is clicked.
    	public void Example(Transform newParent)
    	{
    		//Sets "newParent" as the new parent of the player GameObject.
    		player.transform.SetParent(newParent);
    
    		//Same as above, except this makes the player keep its local orientation rather than its global orientation.
    		player.transform.SetParent(newParent, false);
    	}
    }

    SetSiblingIndex

    类型:void SetSiblingIndex(int index)

    参数:

    index: 设置的索引


    设置当前层级索引。


    TransformDirection

    类型:Vector3 TransformDirection(Vection direction)


    把direction从自身坐标系转换到世界坐标系。

    这个操作不受transform的缩放和位置影响。

    返回的向量与direction长度相同。

    如果向量代表的是一个位置而不是方向,使用Transform.TransformPoint。


    2. public Vector3 TransformDirection(float x, float y, float z);

    同上



    TransformPoint

    类型:Vector3 TransformPoint(Vector3 position)


    把position从自身坐标系转换到世界坐标系

    注意返回的位置受缩放影响。

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        public GameObject someObject;
        public Vector3 thePosition;
        
        void Start() {
        	// Instantiate an object to the right of the current object
    	    thePosition = transform.TransformPoint(Vector3.right * 2);
    	    Instantiate(someObject, thePosition, someObject.transform.rotation);
        }
    }
    2. public Vector3 TransformPoint(float x, float y, float z);

    同上

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        public GameObject someObject;
        
        void Start() {
        	// Instantiate an object to the right of the current object
            Vector3 thePosition = transform.TransformPoint(2, 0, 0);
            Instantiate(someObject, thePosition, someObject.transform.rotation);
        }
    }

    TransformVector

    类型: Vector3 TransformVector(Vector3 vector)

    操作不受transform的位置影响,但是受缩放影响。返回的向量可能与vector长度不一样。


    2. public Vector3 TransformVector(float x, float y, float z);

    同上



    Translate

    类型:void Translate(Vector3 translation, Space relativeTo=Space.Self)


    将transform以translation的方向和距离移动。

    如果relativeTo没有设置或设置为Space.Self,移动是相对于自身坐标系。如果relativeTo设置为Space.World,移动是相对于世界坐标系。

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Update() {
            transform.Translate(Vector3.forward * Time.deltaTime);
            transform.Translate(Vector3.up * Time.deltaTime, Space.World);
        }
    }

    2.public void Translate(float x, float y, float zSpace relativeTo = Space.Self);

    同上

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Update() {
            transform.Translate(0, 0, Time.deltaTime);
            transform.Translate(0, Time.deltaTime, 0, Space.World);
        }
    }

    3.public void Translate(Vector3 translationTransform relativeTo);

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Update() {
            transform.Translate(Vector3.right * Time.deltaTime, Camera.main.transform);
        }
    }

    4.public void Translate(float x, float y, float zTransform relativeTo);

    using UnityEngine;
    using System.Collections;
    
    public class ExampleClass : MonoBehaviour {
        void Update() {
            transform.Translate(Time.deltaTime, 0, 0, Camera.main.transform);
        }
    }

    展开全文
  • fit_transform,fit,transform区别和作用详解!!!!!!

    万次阅读 多人点赞 2018-10-08 18:14:47
    1. 写在前面 fit和transform没有任何关系,仅仅是数据处理的两个不同环节,之所以出来这么个函数名,仅仅是为了写代码方便。...transform函数是一定可以替换为fit_transform函数的,fit_transform函数不能替换为...

    写在前面

    • fit和transform没有任何关系,仅仅是数据处理的两个不同环节,之所以出来fit_transform这个函数名,仅仅是为了写代码方便,会高效一点。

    • sklearn里的封装好的各种算法使用前都要fit,fit相对于整个代码而言,为后续API服务。fit之后,然后调用各种API方法,transform只是其中一个API方法,所以当你调用transform之外的方法,也必须要先fit。

    • fit原义指的是安装、使适合的意思,其实有点train的含义,但是和train不同的是,它并不是一个训练的过程,而是一个适配的过程,过程都是确定的,最后得到一个可用于转换的有价值的信息。

    fit,transform,fit_transform常用情况分为两大类

    1. 数据预处理中方法

    • fit(): Method calculates the parameters μ and σ and saves them as internal objects.
      解释:简单来说,就是求得训练集X的均值,方差,最大值,最小值,这些训练集X固有的属性。

    • transform(): Method using these calculated parameters apply the transformation to a particular dataset.
      解释:在fit的基础上,进行标准化,降维,归一化等操作(看具体用的是哪个工具,如PCA,StandardScaler等)。

    • fit_transform(): joins the fit() and transform() method for transformation of dataset.
      解释:fit_transform是fit和transform的组合,既包括了训练又包含了转换。
      transform()和fit_transform()二者的功能都是对数据进行某种统一处理(比如标准化~N(0,1),将数据缩放(映射)到某个固定区间,归一化,正则化等)

      fit_transform(trainData)对部分数据先拟合fit,找到该part的整体指标,如均值、方差、最大值最小值等等(根据具体转换的目的),然后对该trainData进行转换transform,从而实现数据的标准化、归一化等等。

    根据对之前部分trainData进行fit的整体指标,对剩余的数据(testData)使用同样的均值、方差、最大最小值等指标进行转换transform(testData)从而保证train、test处理方式相同。所以,一般都是这么用:

    from sklearn.preprocessing import StandardScaler
    sc = StandardScaler()
    sc.fit_tranform(X_train)
    sc.tranform(X_test)
    

    2. 各种算法的fit,transform方法

    • 举两个例子:

    1. CountVectorizer举例,sklearn的CountVectorizer库是根据输入数据获取词频矩阵(稀疏矩阵)

    • fit(raw_documents) :根据CountVectorizer参数规则进行操作,比如滤除停用词等,拟合原始数据,生成文档中有价值的词汇表;
      在这里插入图片描述
    • transform(raw_documents):使用符合fit的词汇表或提供给构造函数的词汇表,从原始文本文档中提取词频,转换成词频矩阵。
      在这里插入图片描述
    • fit_transform(raw_documents, y=None):学习词汇词典并返回术语 - 文档矩阵(稀疏矩阵)。
      在这里插入图片描述

    2. TfidfTransformer举例,TF-IDF(Term frequency * Inverse Doc Frequency)词权重

    在较低的文本语料库中,一些词非常常见(例如,英文中的“the”,“a”,“is”),因此很少带有文档实际内容的有用信息。如果我们将单纯的计数数据直接喂给分类器,那些频繁出现的词会掩盖那些很少出现但是更有意义的词的频率。

    为了重新计算特征的计数权重,以便转化为适合分类器使用的浮点值,通常都会进行tf-idf转换。词重要性度量一般使用文本挖掘的启发式方法:TF-IDF。IDF,逆向文件频率(inverse document frequency)是一个词语普遍重要性的度量(不同词重要性的度量)。

    • fit(raw_documents, y=None):根据训练集生成词典和逆文档词频 由fit方法计算的每个特征的权重存储在model的idf_属性中。
      在这里插入图片描述
    • transform(raw_documents, copy=True):使用fit(或fit_transform)学习的词汇和文档频率(df),将文档转换为文档 - 词矩阵。返回稀疏矩阵,[n_samples, n_features],即,Tf-idf加权文档矩阵(Tf-idf-weighted document-term matrix)。
      在这里插入图片描述

    总结:

    上述第一类和第二类等价。算法中的fit方法的应用等价于第一类的fit,只不过产生的结果意义不同(不是均值等统计意义,而是根据算法本身拟合获取不同信息以备后用),transform根据fit的结果转换成目标形式,具体需深究代码实现。

    Note:

    • 必须先用fit_transform(trainData),之后再transform(testData)
    • 如果直接transform(testData),程序会报错
    • 如果fit_transfrom(trainData)后,使用fit_transform(testData)而不transform(testData),虽然也能归一化,但是两个结果不是在同一个“标准”下的,具有明显差异。(一定要避免这种情况)

    附: 另一个角度理解fit和transform

    fit_transform是fit和transform的结合,所以只需要了解fit和transform。

    transform方法主要用来对特征进行转换。

    从可利用信息的角度来说,转换分为无信息转换和有信息转换。

    • 无信息转换是指不利用任何其他信息进行转换,比如指数、对数函数转换等。
    • 有信息转换从是否利用目标值向量又可分为无监督转换和有监督转换。
      • 无监督转换指只利用特征的统计信息的转换,统计信息包括均值、标准差、边界等等,比如标准化、PCA法降维等。
      • 有监督转换指既利用了特征信息又利用了目标值信息的转换,比如通过模型选择特征、LDA法降维等。

    通过总结常用的转换类,我们得到下表:
    在这里插入图片描述
    所以,只有有信息的转换类的fit方法才实际有用,显然fit方法的主要工作是获取特征和目标值有价值的信息,在这点上,fit方法和模型训练时的fit方法就能够联系在一起了:**都是通过分析特征和目标值,提取有价值的信息。对于转换类来说是某些统计量;对于模型来说可能是特征的权值系数等。

    • 另外,只有有监督的转换类的fit和transform方法才需要特征和目标值两个参数,即有监督学习的算法fit(x,y)传两个参数。
    • 无监督学习的算法是fit(x),即传一个参数,比如降维、特征提取、标准化。
    • fit方法无用不代表其没实现,而是除合法性校验以外,其并没有对特征和目标值进行任何处理。
    展开全文
  • Android Transform

    2020-07-20 23:59:41
    Transform详解 深入了解TransformApi 如何理解 Transform API Gradle 学习之 Android 插件的 Transform API Android Gradle Transform 详解
    展开全文
  • 通俗地讲清楚fit_transform()和transform()的区别

    万次阅读 多人点赞 2017-06-20 17:21:58
    fit_transform是fit和transform的组合。 我们知道fit(x,y)在新手入门的例子中比较多,但是这里的fit_transform(x)的括号中只有一个参数,这是为什么呢? fit(x,y)传两个参数的是有监督学习的算法,fit(x)传一...
  • Transform详解

    千次阅读 2020-08-18 18:50:55
    1、Transform简介 Transformer中抛弃了传统的CNN和RNN,整个网络结构完全是由Attention机制组成。更准确地讲,Transformer由且仅由self-Attenion和Feed Forward Neural Network组成。一个基于Transformer的可训练的...
  • transform 属性之 transform-origin

    万次阅读 多人点赞 2018-01-11 22:54:04
    transform-origin 属性用来设置 transform 变换的基点位置。默认情况下,基点位置为元素的中心点。 语法 transform-origin: x-axis y-axis z-axis 名称 值 描述 x-axis 位置(left、center、...
  • fit_transform,transform

    2017-10-15 15:54:36
    在数据转换中有三个很重要的方法,fit,fit_transform,transform ss=StandardScaler() X_train = ss.fit_transform(X_train) X_test = ss.transform(X_test)123 初学时候好奇为何,训练样本用fit_tra
  • UGUI——RectTransform详解

    万次阅读 多人点赞 2017-12-18 19:43:50
    什么是RectTransform 创建一个UGUI控件时,查看其Inspector面板,原先熟悉的Transform已经被替换成RectTransform,面板也与原先的Transform的面板相去甚远。 先看看Unity官方对RectTransform的描述: ...
  • Rect Transform

    千次阅读 2018-10-13 13:38:08
    Rect Transform属性 Rect Transform组件是Transform组件的2D布局对应组件。当Transform表示单个点时,Rect Transform表示一个可以放置UI元素的矩形。如果Rect Transform的父变换也是Rect Transform,子矩形变换也...
  • mark一下这两篇文章,有时间再好好总结。 https://www.w3cplus.com/content/css3-transform http://www.zhangxinxu.com/wordpress/2012/09/css3-3d-transform-perspective-animate-transition/
  • transform属性

    千次阅读 2018-07-15 18:23:12
    Transform字面上就是变形,改变的意思。在CSS3中transform主要包括以下几种:旋转rotate、扭曲skew、缩放scale和移动translate以及矩阵变形matrix。下面我们一起来看看CSS3中transform的旋转rotate、扭曲skew、缩放...
  • Unity Transform

    2018-09-02 16:13:23
    Transform Transform保存游戏对象的位置(position),旋转值(rotation),和缩放(scale); 每个gameobject都会有一个Transform组件,不能删除也不能创建一个没有Transform组件的gameobject; 如果gameobject有父节点,...
  • sklearn:sklearn.preprocessing.StandardScaler函数的fit_transformtransform、inverse_transform简介、使用方法之详细攻略 目录 StandardScaler函数的的简介及其用法 StandardScaler函数的的简介 ...
  • 1. fit_transform是fit和transform的组合。 2. fit(x,y)传两个参数的是有监督学习的算法,fit(x)传一个参数的是无监督学习的算法,比如降维、特征提取、标准化。 3. fit和transform没有任何关系,之所以出来这么个...
  • Transform 组件

    2016-12-26 22:31:19
    Transform组件的变量Transform组件方法代码实例using UnityEngine; using System.Collections;public class Test : MonoBehaviour { void Start () { // 获取当前脚本所挂载的游戏对象身上的 Transform 组件 // ...
  • 引用:Is there a way to destroy/replace a GameObject that is inside or part of a Prefab instance? Changing Transform on a Prefab ...默认Model对象导入Transform组件,但是在ui中有些组件需要RectTransform组.
  • 2、fit_transform 不仅计算训练数据的均值和方差,还会基于计算出来的均值和方差来转换训练数据,从而把数据转换成标准的正太分布   3、transform 很显然,它只是进行转换,只是把训练数据转换成标准的正态分布...
  • 以前一直以为在Inspector面板上的是Transform,后来才发现原来2D是RectTransform,3D是Transform   3D面板上显示的是位置坐标组件Transform,2D面板上显示的是位置坐标组件RectTransform   RectTransform是...
  • 虽然可以通过 GameObject.Find() 来查到父节点的gameObject 然后.transform 可以实现目的。 但是怎么想都觉得有点消耗性能。 第一反应是 通过transform.Find() 来查找 ,甚至想通过在Find() 里面写绝对路径来查找到...
  • fit,transform,fit_transform详解

    千次阅读 2019-05-24 17:10:02
    fit和transform没有任何关系,仅仅是数据处理的两个不同环节,之所以出来fit_transform这个函数名,仅仅是为了写代码方便,会高效一点。 sklearn里的封装好的各种算法使用前都要fit,fit相对于整个代码而言,为后续...
  • fit_transformtransform的区别

    千次阅读 2018-06-03 08:46:39
    fit_transformtransform的区别如图: 数据首先fit 训练数据,然后model从训练数据得到必要的变换信息,如特征方差和期望等,并保存为模型的参数,transform根据参数,对训练数据做需要的变换。之后用在测试集...
  • fit_transform分为两步,第一步确定转换函数,比如说标准化处理,就需要基于数据计算出均值与方差;第二步,然后所有数据基于第一步计算出来的均值与方差进行转换; transform:只有一步,就是上述中的第二个步骤;...
  • Gradle Transform

    千次阅读 2017-09-25 10:48:43
    概述Gradle Transform是Android官方提供给开发者在项目构建阶段即由class到dex转换期间修改class文件的一套api。目前比较经典的应用是字节码插桩、代码注入技术。基础 TransformInput:所谓Transform就是对输入的...
  • 背景: StandardScaler类是一个用来讲数据进行归一化和标准化的类。 所谓归一化和标准化,即应用下列公式: 使得新的X数据集方差为1,均值...答:fit_transform方法是fit和transform的结合,fit_transform(X_train) ...
  • Transform组件

    千次阅读 2014-10-11 16:56:26
    Transform组件用于控制物体的位置,旋转和缩放,这里面涉及两个重点,一个是坐标系,这个包括局部坐标系和世界坐标系的关系,另外一个是父子节点,GameObject的父子节点关系是通过Transform组件来维护的。...
  • 在使用PCA和NFC中有三个函数fit,fit_transformtransform区分不清各自的功能。通过测试,勉强了解各自的不同,在这里做一些笔记。 1.fit_transform是fit和transform的混合,相当于先调用fit再调用transform。 2....
  • JS transform

    2017-01-04 09:22:43
    JS transform1.实现半个像素,边框变成半个像素 width:200%; height:200%; border:1px solid gray; transform:scale(0.5,0.5); ----- scale(x,Y);2.定义 2D 旋转,在参数中规定角度 transform:rotate(90deg); //...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 78,478
精华内容 31,391
热门标签
关键字:

transform