zoukankan      html  css  js  c++  java
  • Mathf函数说明

    Mathf结构:常用数学函数的集合。
    类变量
    ◆ static var Deg2Rad:float
    描述:度到弧度的转化常量(只读)。
    这个等于(PI*2)/360.
    //转化30度为弧度
    var deg=30.0;
    var od=dcg*Mathf.Deg2Rad;
    参见:Rad2Deg常量。
    ◆ static varEpsilon:float
    描述:一个小的浮点数值(只读)
    比较小于它的值没有多人意见,因为浮点数是不精确的。
    print(MathfEpsilon);
    ◆ static var Infinity:float
    描述:表示正无穷(只读).
    ◆ static var NegativeIntinity:float
    描述:表示负无穷(只读).
    ◆ staic var PI:float
    描述:3.14159265358979…值(只读).
    ◆ static var Rad2deg:float
    描述:弧度到度的转化常量(只读).
    这个等于360、(PI*2).
    转化1弧度为度
    var rad=1.0;
    var deg=rad*Mathf.Rad2Deg.
    参见:Deg2Rad常量
    类方法
    ◆ staric function Abs(f:float):float
    描述:返回f的绝对值。
    //打印10.5
    print(Mathf.Abs(-10.5)).
    ◆ staric function Abs(value:int):int
    描述:返回value的绝对值。
    //打印10
    print(Mathf.Abs(-10));
    ◆ staric function Acos(f:float):float
    描述:返回f的反余弦_一个弧度角它的余弦是f.
    print(Mathf.AcOS(0.5);
    ◆ staric function Approximately(a:float,b:float):bool
    描述:比较两个浮点数值看看它们是否近似。
    由于浮点数值不精确,不建议使用等操作来比较它们。例如,1.0==10.0/10.0也许不会返回真。
    if(Mathf.Approximately(1.0,10.0/10.0))
    print(“same”);
    ◆ static function Asin(f:float):float
    描述:返回f的反正弦_一个弧度角它的正弦是f.
    print(Matht.Asin(0.5));
    ◆ staric function Atan(f:float):float
    描述:返回f的反切_一个弧度角它的正切是f.
    print(Mathf.Atan(0.5));
    ◆ staic function Atan2(y:float,x:float):float
    描述:返回一个弧度角它的Tan为y/x。
    返回的值是一个角度,该角表示x轴和开始于零并终结在(x,y)处的向量之间的角度。
    //通常使用transform.lookAt.
    //但这可以给你更多的对角度的控制
    vartatget:Transform;
    function Update()
    {
    var relativ=transfom.lnverseTeansformPoint(target.position);
    var angle=Mathf.Atan2(reative,reative.z)*Mathf.Rad2Deg;
    transform.Rotate(0,angle,0);
    }
    ◆ static function Ceil(f:fioat):float
    描述:返回大于等于f的最小整数.
    ◆ static function CeilTolnt(f:fioat):int
    描述:返回大于等于f的最小整数.
    ◆ static function Clamp(value:float,min:float,max:float):float
    描述:在一个最小的浮点数和最大的浮点数之间截剪。
    //随着时间设置变换位置
    //但是不会小于1或大于3
    function Update()
    {
    transtorm,position.x=Mathf.Clamp(lime.time.1.0,3.0);
    }
    ◆ staric function Clamp(value:int,min:int,max:int):int
    描述:在min和max之间裁剪值并返回裁剪后的值。
    //在1到3之间裁剪10,
    //打印3到控制台
    prnt(Mathf.Clamp(10,1,3))
    ◆ static function Clamp01(value;float):float
    描述:在0和1之间裁剪值并返回裁剪后的值。
    //随着时间设置变换位置
    //但是不会小于0或大于1
    function Update(){
    transform.position.x=Mathf.Clamp01(Time.time);
    }
    ◆ staic function ClosestPowerOflwo(value:int):int
    描述:返回最直接的2的幂次值。
    例如。7返回8或者19返回16
    ◆ staric function Cos(f:float):float
    描述:返回弧度f的余弦值.
    print(Mathf.Cos(3));
    ◆ staic function EXP(power:float):float
    描述:返回e的特定次幂。
    print(Mathf.Cos(6));
    ◆ static function Floor(f:float):float
    描述:返回小于f的最大整数.
    ◆ static function FloorTolnt(f:float):int
    描述:返回小于f的最大整数.
    ◆ static function lnverseLerp(from:float,to:float,value:float):float
    描述:在两个值之间计算Lerp参数.
    varwalkSpeed=5.0;
    varunSpeed=10.0;
    var speed=8.0;
    //参数现在是3/5
    vvar parameter=Mathf.laverseLerp(walkSpeed,runSpeed,speed);
    ◆ staic tunchon Lerp(a:float,b:float,t:float):float
    描述:基本t在a到b之间插值。t本裁剪到0到1之间。
    当t为0时返回from . 当t为1时返回to .当t=0.5时返回a和b的平均。
    var minimum = 10.0;
    var maximum = 20.0;
    // 在一秒内从minimum渐变到maximum
    Function Update()
    {
    transform.position.x = Mathf.lerp(minimum,maximum,Time.time);
    }
    ◆ static function LerpAngle(a:float,b:float,t:float):float
    描述:与Lerp相同,但是当它们可绕360度时确保插值正确,
    变量a和b被认为是度。
    //以2为底6的对数
    //打印2.584963
    print(Mathf.Log(6,2));
    ◆ static function Log(f:float):float
    描述:返回一个数以自然(以e为底)对数。
    //10的自然对数
    //打印4.60517
    print(Mathf.Log(10));
    ◆ static function Log10(f:float):float
    描述:返回一个数以10为底的对数。
    //以10为底100的对数
    //打印2
    print(Mathf.Log10(100));
    ◆ static function Max(a:float,b:float):float
    描述:返回两个值中较大的一个。
    //打印2
    print(Mathf.Max(1,2));
    ◆ static function Max(a:int,b:int):int
    描述:返回两个值中较大的一个。
    //打印2
    print(Mathf.Max(1,2));
    ◆ static function Min(a:float,b:float):float
    描述:返回两个值中较小的一个。
    //打印1
    print(Mathf.Min(1,2));
    ◆ static function Min(a:int,b:int):int
    描述:返回两个值中较小的一个。
    //打印1
    print(Mathf.Min(1,2));
    ◆ static function PingPong(t:float,length:float):float
    描述:来回改变t值,t值不会超过length,也不会小于0,只会在length和0之间循环。
    function Update()
    {
    //让x位置在0到3之间循环
    transform.position.x = Mahtf.PingPong(Time.time,3);
    }
    ◆ static function Pow(f:float,p:float):float
    描述:返回f的p次方。
    print(Mahtf.Pow(6,1.8));
    ◆ static function Repeat(t:float,length:float):float
    描述:使t值循环,不大于length不小于0。它与操作模板类似,但可以使用浮点数。
    function Update()
    {
    //让x位置在0到3之间循环
    transform.position.x = Mahtf.Repeat(Time.time,3);
    }
    ◆ static function Sign(f:float):float
    描述:返回f的符号。
    当f为正或为0则返回1,为负返回-1。
    ◆ static function Sin(f:float):float
    描述:返回以f为弧度的sin值。
    print(Mahtf.Sin(3));
    ◆ static function SmoothDamp(current:float,target:float,ref currentVelocity:float,smoothTime:float,maxSpeed:float = Mahtf.Infinity,deltaTime:float =Time.deltaTime):float
    描述:逐步的向期望值变化。
    这个值就像被一个不会崩溃的弹簧防震器所影响。这个函数可以用来平滑任何类型的值,位置,颜色,标量。最常用于让一个跟随摄像机的速度变的平滑。
    current 就是当前位置。target是我们希望达到的位置。currentVelocity是当前速度,这个值在你访问这个函数的时候会被随时修改。 smoothTime是要到达目标位置的近似时间,实际到达目标时要快一些。maxSpeed可以让你随意的设定最大速度。deltaTime是上次访问该函
    数到现在的时间。缺省为Time.deltaTime。
    //平滑到目标高度
    var target : Transform;
    var smoothTime = 0.3;
    private var yVelocity = 0.0;
    function Update ()
    {
    var newPosition = Mathf.SmoothDamp(transform.position.y, target.position.y,yVelocity, smoothTime);
    transform.position.y = newPosition;
    }
    ◆ Static function SmoothDampAngle(current: float, target: float, ref currentVelocity): float, smoothTime: float, maxSpeed: float=Mathf.Infinity, deltaTime: float=Time.deltaTime): float
    描述: 基于Game Programming Gems4章节1.10
    随着时间逐渐的改变一个角度为目的的角度。这个值被像弹簧阻尼一样的函数平滑。这个函数可以用来平滑任何一种值,位置,颜色,标量。最常见的是平滑一个跟随摄像机。
    current 是当前位置。target是我们试图到达的位置。currentVelocity是当前速度,这个值在每次你调用这个函数的时候都被修改。 smoothTime是到达目的地近似时间,实际的时间将更短。maxSpeed为允许的最大速度。deltaTime为从上次调用该函数到现在的时间。缺省为Time.deltaTime。
    //一个简单的平滑跟随摄像机。
    //跟随目标的朝向
    var target : Transform;
    var smooth = 0.3;
    var distance = 5.0;
    private var yVelocity = 0.0;
    function Update ()
    {
    //从目前的y角度变换到目标y角度
    var yAngle = Mathf.SmoothDampAngle(transform.eulerAngles.y,target.eulerAngles.y, yVelocity, smooth);
    //target的位置
    var position = target.position;
    //然后,新角度之后的距离便宜
    position += Quaternion.Euler(0, angle, 0) * Vector3 (0, 0, -distance);
    //应用位置
    transform.position = position;
    //看向目标
    transform.LookAt(target);
    }
    ◆ static function SmoothStep (from : float, to : float, t : float) : float
    描述:在min与max中插值并在限定处渐入渐出
    ◆ static function Sqrt (f : float) : float
    描述:返回f的平方根
    print(Mathf.Sqrt(10));
    ◆ static function Tan (f : float) : float
    描述:返回弧度f的正切值
    print(Mathf.Tan(0.5));
    Matrix4x4
    一个标准的4×4变换矩阵。
    一个变换矩阵可以执行任意的线形3D变换(例如,评议,旋转,缩放,切边等等)并且偷师变化使用齐次坐标。脚本中很少使用矩阵:最常用Vector3,Quaternion,而且Transform类的功能更简单。单纯的矩阵用于特殊情况,如设置非标准相机投影。
    参考任何图形学教程获取关于变换矩阵的深入揭示。
    在Unity中,Matrix4x4被Transform,Camera,Material和GL函数使用。
    变量
    ◆ var inverse : Matrix4x4
    描述:返回该矩阵的逆(只读)
    如果用原始矩阵诚意逆矩阵结果为identity矩阵。
    如果一些矩阵以一个特定的方式变换响亮,逆矩阵可以将他们变换回去。例如worldToLoclaMatrix和localToWorldMatrix是互逆的。
    ◆ var this[row : int,column : int]:float
    描述:访问[row,column]处的元素。
    row和column必须在0到3之间,矩阵是一个4×4的数组,你可以通过使用这个函数访问单个的元素。
    注意标准数学符号-row是第一个索引。
    ◆ var this[index : int]:float
    描述:按顺序索引存取元素(包括在0..15)
    矩阵是一个4×4的数组,所以它的总数为16,。你可以使用一维索引来存取单个元素。index是row+column*4
    ◆ var transpose : Matrix4x4
    描述:返回这个矩阵的转置(只读)。
    转置矩阵是将原矩阵行列交换得到的(沿主对角线翻转)
    函数
    ◆ function GetColumn(i : int):Vector4
    描述:获取矩阵的一列。
    第i列作为Vector4返回,i必须在0到3之间。
    参见:SetColumn
    ◆ function GetRow(i : int):Vector4
    描述:返回矩阵的一行。
    第i行作为Vector4返回,i必须在0到3之间。
    参见:SetRow
    ◆ function MultiplyPoint (v : Vector3):Vector3
    描述:通过这个矩阵变换位置。
    返回由任意矩阵变化得到的位置v。如果这个矩阵是一个正规的3D变换矩阵,使用MultiplyPoint3x4比它更快。MultiplyPoint是较慢的,但是能处理投影变换。
    参见:MultiplyPoint,MultiplyVector。
    ◆ function MultiplyPoint3x4(v : Vector3):Vector3
    描述:通过这个矩阵变换位置(快)。
    返回由当前变换矩阵变换得到的位置v。这个函数是MultiplyPoint的快速版,但是它只能处理常规的3D变化。Multiplypoint是较慢的,但是能处理投影变换。
    参见:MultiplyPoint,MultiplyVector。
    ◆ function MultiplyVector(v : Vector3):Vector3
    描述:通过这个矩阵变换方向。
    这个函数类似于MultiplyPoint,但它是变换方向而不是位置。变换方向时,只考虑矩阵的旋转部分。
    参见:MultiplyPoint,MultiplyPoint3x4。
    ◆ function SectColumn(i : int,v:vector4):void
    描述:设置矩阵的一列。
    使用这个来构建一个变换矩阵,这个矩阵使用right,up和forward向量。
    //从变换构建一个矩阵
    var matrix = Matrix4x4();
    //从变换构建一个矩阵
    function Start ()
    {
    matrix.SetColumn (0, transform.right);
    matrix.SetColumn (1, transform.up);
    matrix.SetColumn (2, transform.forward);
    var p = transform.position;
    matrix.SetColumn (3, Vector4 (p.x, p.y, p.z, 1));
    }
    //设置第i列为v。i必须在0到3之间。
    参见:GetColumn
    ◆ function SetRow(i : int,v:Vector4):void
    描述:设置矩阵的一行。
    设置第i行为v。i必须在0到3之间。
    参见:GetRow
    ◆ function SetTRS(pos : Vector3, q:Quaternon, s:Vector3):void
    描述:设置这个矩阵为一个变换,旋转和缩放矩阵。
    当前的矩阵本修改一遍具有位置pos,旋转q和缩放s。
    ◆ function ToString():string
    描述:返回已格式化的该矩阵的字符串。
    类变量
    ◆ static var identity : Matrix4x4
    描述:返回单位矩阵(只读)。
    这个矩阵在使用的时候不会影响任何东西。它的主对角线上全是1,其他位置全是0。
    1 0 0 0
    0 1 0 0
    0 0 1 0
    0 0 0 1
    参见:zero变量。
    ◆&n, bsp;static var zero : Matrix4x4
    描述:返回所有元素都为零的矩阵(只读)。
    0 0 0 0
    0 0 0 0
    0 0 0 0
    0 0 0 0
    参见:identity变量。
    类方法
    ◆ static operator * (lhs : Matrix4x4,rhs : Matrix4x4) : Matrix4x4
    描述:两个矩阵相乘。
    返回lhs * rhs。
    ◆ static operator * (lhs : Matrix4x4,v:Vector4):Vector4
    描述:由矩阵来变换一个Vector4。
    ◆ static function Ortho(left : float,right : float,bottom : float,top : float,zNear : float,zFar : float):Matirx4x4
    描述:创建一个正交投影矩阵。
    返回的矩阵是视口ledt到right,bottom到top的区域,zNear和zFar深度裁剪面板。
    如果你想使用正交来做像素修正渲染,最好使用GL.LoadPixelMatrix,因为它会为Direct3D渲染器运用适当的half-texel便宜。
    参见:GL.LoadPixelMatrix,GL.LoadProjectionMatrix,GUI.matrix
    ◆ static function Perspective(fov : float,aspect : float,zNear : float,zFar : float):Matrix4x4
    描述:创建一个透视投影矩阵。
    fov为透视矩阵的垂直视野,aspect为宽高比,zNear和zFar设置为深度裁剪面板。
    参见:GL.LoadPixelMatrix,GL.LoadProjectionMatrix,GUI.matrix
    ◆ static function Scale(v:Vector3):Matrix4x4
    描述:穿件一个缩放矩阵。
    返回沿着坐标轴被响亮v缩放的矩阵,该矩阵看起来像这样:
    v x 0 0 0
    0 v y 0 0
    0 0 v z 0
    0 0 0 1
    ◆ static function TRS(pos:Vector3,q:Quaternion,s:Vector3):Matrix4x4
    描述:创建一个变换,旋转和缩放矩阵。
    返回的矩阵具有位置pos,旋转q和缩放s。


  • 相关阅读:
    Element-ui左侧菜单刷新依旧高亮显示当前菜单
    Element-ui表格单选
    Element-UI表格点击Popover 弹出框确定取消
    纯JS原生请求接口post方式
    Vue+Element-ui+二级联动封装组件
    Vue如何修改标题title呢?
    vue-cli3.0怎么修改端口?
    Element-ui上传文件(删除、添加、预览)
    关于Ubuntu的ifconfig命令出现SIOCSIFADDR系列错误
    关于keil 中出现“give arg types”
  • 原文地址:https://www.cnblogs.com/fm168/p/3095042.html
Copyright © 2011-2022 走看看