scale_scaletype - CSDN
  • scale()方法的副作用

    2018-05-07 23:06:01
    在Canvas中,可以使用scale()方法来改变图形大小(即缩放)。不过scale()方法是有一定副作用的,它除了改变图形大小之外,还会改变其他属性如线条宽度(即lineWidth)、左上角坐标等。看下面一段代码:<!...

    在Canvas中,可以使用scale()方法来改变图形大小(即缩放)。不过scale()方法是有一定副作用的,它除了改变图形大小之外,还会改变其他属性如线条宽度(即lineWidth)、左上角坐标等。

    看下面一段代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>scale()方法的副作用</title>
        <script>
            function $(id){
                return document.getElementById(id);
            }
            window.οnlοad=function(){
                var cv=$('canvas');
                var cxt=cv.getContext('2d');
    
                cxt.lineWidth=4;
                cxt.strokeStyle='hotpink';
                cxt.strokeRect(30,30,50,50);
    
                 //图形放大
                $('btn-big').οnclick=function(){
                    cxt.scale(1.5,1.5);
                    cxt.strokeRect(30,30,50,50);
                };
            };
        </script>
    </head>
    <body>
        <canvas id="canvas" width='500' height='500' style='border:1px solid grey;'></canvas><br />
        <input type="button" id="btn-big"  value='放大' />
    </body>
    </html>

    多次点击“放大”按钮之后,在浏览器中的预览效果如下:


    按照预期效果,图形放大之后,线条宽度和左上角坐标都应该不变才对。但是在这里,每次放大之后,线条宽度和左上角坐标都会变为原来的2倍。

    总结一下,scale()方法会改变图形的以下几点:

    (1)左上角坐标

    (2)宽度和高度

    (3)线条宽度

    知道这些,可以让我们更加深入地了解scale()方法的本质以及避免出现一些低级的bug。

    展开全文
  • scale函数

    2019-01-16 23:19:58
    在我们做数据的时候,一个数据会有很多特征;比如在描述影响房价的因素,有房子面积,房间数量等。而不同的特征存在不同的量纲,为了消除量纲、数值差异等,我们就需要对数据进行中心化和标准化;...

    在我们做数据的时候,一个数据会有很多特征;比如在描述影响房价的因素,有房子面积,房间数量等。而不同的特征存在不同的量纲,为了消除量纲、数值差异等,我们就需要对数据进行中心化和标准化;

    那什么是中心化,什么是标准化呢?

    所谓中心化就是将数据减去均值后得到的,比如有一组数据(1,2,3,4,5,6,7),它的均值是4,中心化后的数据为(-3,-2,-1,0,1,2,3)

    而标准化则是在中心化后的数据基础上再除以数据的标准差

    在R语言中可以通过scale函数直接进行数据的中心化和标准化,具体如下:

    Scale(x,center,scale)

    参数解释:x—即需要标准化的数据

                     center—表示是否进行中心化

                     scale—表示是否进行标准化
    --------------------- 
    作者:Fovace 
    来源:CSDN 
    原文:https://blog.csdn.net/baidu_28122193/article/details/78980574 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    展开全文
  • 目录 4.Scala基础 4.1 声明变量 4.2 常用类型 4.3 条件表达式 4.4 块表达式 4.5 循环 4.6 调用方法和函数 4.7 定义方法和函数 4.7.1 定义方法 4.7.2 定义函数 4.7.3 方法和函数的区别 ......

    目录

    4.Scala基础

    4.1 声明变量

    4.2 常用类型

    4.3 条件表达式

    4.4 块表达式

    4.5 循环

    4.6 调用方法和函数

    4.7 定义方法和函数

    4.7.1 定义方法

    4.7.2 定义函数

    4.7.3 方法和函数的区别

    4.7.4 将方法转换成函数(神奇的下划线)


    4.Scala基础

    4.1 声明变量

    package cn.itcast.scala
    
    object VariableDemo {
    
        def main(args: Array[String]) {
    
            //使用val定义的变量值是不可变的,相当于java里用final修饰的变量
            val i = 1
    
            //使用var定义的变量是可变得,在Scala中鼓励使用val
            var s = "hello"
    
            //Scala编译器会自动推断变量的类型,必要的时候可以指定类型
            //变量名在前,类型在后
            val str: String = "itcast"
    
        }
    
    }

    4.2 常用类型

    4.2.1 7种数值类型

    Scala和Java一样,有7种数值类型Byte、Char、Short、Int、Long、Float、Double类型和1个Boolean类型。

    4.2.2 关于Any、AnyVal、AnyRef的说明

    Any在scala中,Any类是所有类的超类

    Any有两个子类:AnyVal和AnyRef

    AnyVal

    • AnyVal 所有值类型的基类, 它描述的是值,而不是代表一个对象。

    • 它包括 9个AnyVal 子类型:

      • scala.Double

      • scala.Float

      • scala.Long

      • scala.Int

      • scala.Char

      • scala.Short

      • scala.Byte

    上面是数字类型。

    还包括scala.Unit 和 scala.Boolean 是非数字类型。

    Unit相当于java中void,表示没有返回值,它在scala中有一个实例对象-------> ()

    AnyRef

    • 是所有引用类型的基类。除了值类型,所有类型都继承自AnyRef 。

    4.3 条件表达式

    Scala的条件表达式比较简洁,定义变量时加上if else判断条件。例如:

    package cn.itcast.scala
    
    object ConditionDemo {
      def main(args: Array[String]) {
        val x = 1
        //判断x的值,将结果赋给y
        val y = if (x > 0) 1 else -1
        //打印y的值
        println(y) //y:Int = 1
        
    
        //支持混合类型表达式
        val z = if (x > 1) 1 else "error"
        //打印z的值
        println(z) //Any = error
    
        //如果缺失else,相当于if (x > 2) 1 else ()
        val m = if (x > 2) 1
        println(m) //AnyVal = {}
    
        //在scala中每个表达式都有值,scala中有个Unit类,用作不返回任何结果的方法的结果类型,
        //相当于Java中的void,Unit只有一个实例值,写成()。
        val n = if (x > 2) 1 else ()
        println(n) //AnyVal = {}
    
        //if和else if
        val k = if (x < 0) 0
        else if (x >= 1) 1 else -1
        println(k) //k:Int = 1
      }
    }
    

    4.4 块表达式

    定义变量时用 {} 包含一系列表达式,其中块的最后一个表达式的值就是块的值。

    package cn.itcast.scala
    
    object BlockExpressionDemo {
        def main(args: Array[String]) {
            val a = 10
            val b = 20
            //在scala中{}中包含一系列表达式,块中最后一个表达式的值就是块的值
            //下面就是一个块表达式
            val result = {
                val c=b-a
                val d=b-c
                d   //块中最后一个表达式的值
            }
            //result的值就是块表达式的结果
            println(result)
        }
    }
    

    4.5 循环

    在scala中有for循环和while循环,用for循环比较多

    for循环语法结构:for (i <- 表达式/数组/集合)

    while循环语法结构:while (返回值类型是boolean)

    package cn.itcast.scala
    object ForDemo {
      def main(args: Array[String]) {
        //for(i <- 表达式),表达式1 to 10返回一个Range(区间)
        //每次循环将区间中的一个值赋给i
        for (i <- 1 to 10)
          println(i)
    
        //for(i <- 数组)
        val arr = Array("a", "b", "c")
        for (i <- arr)
          println(i)
    
        //高级for循环
        //每个生成器都可以带一个条件,注意:if前面没有分号
        for(i <- 1 to 3; j <- 1 to 3 if i != j)
          print((10 * i + j) + " ")
        println()
    
        //for推导式:如果for循环的循环体以yield开始,则该循环会构建出一个集合
        //每次迭代生成集合中的一个值
        val v = for (i <- 1 to 10) yield i * 10
        println(v)
        
        //while循环和java一致
        while(a>0){
            println(a)
            a=a-1
        }
    
        //使用while打印list
        while(!list.isEmpty){
    	println(list.head)
    	list=list.tail
        }
    
      }
    
    }
    

    4.6 调用方法和函数

    Scala中的+ - * / %等操作符的作用与Java一样,位操作符 & | ^ >> <<也一样。只是有一点特别的:这些操作符实际上是方法

    例如 a + b 是如下方法调用的简写:

    a.+(b)

    a 方法 b可以写成 a.方法(b)

     

    4.7 定义方法和函数

    4.7.1 定义方法

    方法的返回值类型可以不写,编译器可以自动推断出来,但是对于递归函数,必须指定返回类型

     

    4.7.2 定义函数

    4.7.3 方法和函数的区别

    在函数式编程语言中,函数是“头等公民”,它可以像任何其他数据类型一样被传递和操作,函数是一个对象,继承自FuctionN

    函数对象有applycurriedtoStringtupled这些方法。而方法不具有这些特性。

    如果想把方法转换成一个函数,可以用方法名跟上下划线的方式

     

    案例:首先定义一个方法,再定义一个函数,然后将函数传递到方法里面

    package cn.itcast.scala
    
    object MethodAndFunctionDemo {
      //定义一个方法
      //方法m2参数要求是一个函数,函数的参数必须是两个Int类型
      //返回值类型也是Int类型
      def m1(f: (Int, Int) => Int) : Int = {
        f(2, 6)
      }
    
      //定义一个函数f1,参数是两个Int类型,返回值是一个Int类型
      val f1 = (x: Int, y: Int) => x + y
      //再定义一个函数f2
      val f2 = (m: Int, n: Int) => m * n
    
      //main方法
      def main(args: Array[String]) {
    
        //调用m1方法,并传入f1函数
        val r1 = m1(f1)
        println(r1)
    
        //调用m1方法,并传入f2函数
        val r2 = m1(f2)
        println(r2)
      }
    }
    

     

    4.7.4 将方法转换成函数(神奇的下划线)

    将方法转换成函数,只需要在方法的后面加上一个下划线

     

     

     

    展开全文
  • CSS3-转换之scale

    2017-11-28 19:16:40
    在讲解之前,我们先将我们要变换的元素看做一个正方体,为了方便理解,我标注了XYZ轴以及方向,如下图: 1、 scaleX(x)通过设置X...3、scale(x,y)定义2D缩放转换,默认值为1,当大于1时,元素放大,当小于1大于0时,元

    在讲解之前,我们先将我们要变换的元素看做一个正方体,为了方便理解,我标注了XYZ轴以及方向,如下图:
    这里写图片描述

    1、 scaleX(x)

    通过设置X轴值来定义缩放转换,效果如下图:
    这里写图片描述
    沿着X轴缩小,俯视图如上。

    2、 scaleY(y)

    通过设置y轴值来定义缩放转换,效果如下图:
    这里写图片描述
    沿着Y轴缩小,俯视图如上。

    3、scale(x,y)

    定义2D缩放转换,默认值为1,当大于1时,元素放大,当小于1大于0时,元素缩小。效果如下:
    这里写图片描述
    沿着X和Y轴缩小,俯视图如上。

    4、 scaleZ(z)

    通过设置z轴值来定义缩放转换,效果如下:
    这里写图片描述
    从上图可以看到,俯视图并未有任何变化,为什么呢?其实我们只要把元素看做一个正方体,那么Z轴方向的缩放就相当于正方体厚度的变化,俯视图当然是看不出来的。

    5、scale3d(x,y,z)

    定义3D缩放转换,效果如下:
    这里写图片描述
    scale3d(x,y,z)是综合上述效果,原理同上。

    如有错误,请道友指正,非常感谢!

    展开全文
  • R语言中的scale函数

    2018-04-23 18:18:21
    scale函数是将一组数进行处理,默认情况下是将一组数的每个数都减去这组数的平均值后再除以这组数的均方根。其中有两个参数,center=TRUE,默认的,是将一组数中每个数减去平均值,若为false,则不减平均值; scale...
  • Precision (field length) 精度(字段...Scale (decimal places) 范围(小数位数) MySQL要求精度大于等于范围: mysql> create table test (a decimal(1,3)); ERROR 1427 (42000): For float(M,D), double(M,D) or
  • kaggle上的数据清洗教程第二天---Scale和Normalization(不知道如何翻译会比较好,参考了其他博客,scale为缩放,normalization 为正则化)1.Scale1.1 粗略理解 将数据转为为特定范围的数据,比如(0,1)或者(0,...
  • Unity中Scale详解

    2018-01-07 11:55:17
    1.缩放变换Scale代表的是缩放。 通常意义下的缩放变换,指的是利用缩放矩阵和物体的齐次坐标相乘而进行变换,缩放矩阵形如: Scalex代表x轴方向的缩放 Scaley代表y轴方向的缩放 Scalez代表z轴方向的缩放 当它与...
  • 什么是scale up和scale out?  许多存储系统开始很简单,但当需要进行系统扩展时就会变得复杂。升级存储系统最常见的原因是需要更多的容量,以支持更多的用户,文件,应用程序或连接的服务器。  但是通常,...
  • 1,rem布局,现在普遍常用的方法 一般ui设计师给的页面都是640的,所以document.documentElement.clientWidth/6.4+"px";项目中,在ps中量的尺寸直接除以100,后面写rem就可以了。 window.onload=function(){ ...
  • 2. scale、rotate、clipXXX 等对画布进行操作的方法; 3. drawXXX 等一系列绘画相关的方法; 前面主要讲了drawBitmap方法,并举了一个星球浮动的栗子,在那个例子中,星球有大有小,需要移动,有时候可能需求上还...
  • 前两天把canvas的translate()和rotate()的方法都介绍了下,今天就来说说scale()scale() 方法缩放当前绘图,更大或更小。 注释:如果您对绘图进行缩放,所有之后的绘图也会被缩放。定位也会被缩放。如果您 scale(2,2...
  • Tkinter教程之Scale

    2016-07-11 10:17:04
    '''Tkinter教程之Scale篇''' # Scale为输出限定范围的数字区间,可以为之指定最大值,最小值及步距值 '''1.创建一个Scale''' from tkinter import * root = Tk() Scale(root).pack() # 创建一个垂直Scale,最大值为...
  • 云存储的几十年发展历程,其计算架构模型,也从Scale Up走向Scale Out。但是展望未来数字世界的海量需求,目前流行的模型还能够持续满足吗?本文通过对云存储历史的回顾,及对Scale Up和Scale Out两种扩展模型的诠释...
  • meta name="viewport" content="width=device-width,initial-scale=1.0" 解释 <meta name="viewport" content="width=device-width,initial-scale=1.0"> content属性值 : width:可视区域的宽度,值可为...
  • 今天做一个刮刮乐H5应用的时候,用到了个简单的 CSS 动画效果,就是使用缩放transform: scale(.1) 从小变大弹出获奖窗口,以及按钮重复变大变小的动画,结果遇到个很郁闷的问题,按钮和文字变得非常模糊,完全没法看...
  • Tkinter学习-Scale

    2018-07-08 13:40:43
    The Tkinter Scale WidgetScale(刻度)组件看起来像是一个带数据的 Scrollbar(滚动条)组件,但事实上它们是不同的两个东东。Scale 组件允许用于通过滑动滑块来选择一个范围内的数字。你可以控制该组件的最大值、...
  • Tkinter 组件详解之Scale Scale(刻度)组件看起来像是一个带数据的 Scrollbar(滚动条)组件,但事实上它们是不同的两个东东。Scale 组件允许用于通过滑动滑块来选择一个范围内的数字。你可以控制该组件的最大值、...
  • 先说共同点,他们都可以对元素进行缩放。其次是区别: 1.zoom从前是IE特有的,现在虽然chrome、Safari也支持...而transform:scale不支持百分比只能是数值而且还可以是负数(负数意味着翻转),transform:scale的...
  • Tkinter 中的 Scale 控件是一种可供用户通过拖动指示器改变变量值的控件. 这种控件可以水平放置, 也可以竖直放置.  可以在用户界面中放置一个 Scale 控件, 用户通过拖动该控件就可以在某个取值范围内选择一个...
1 2 3 4 5 ... 20
收藏数 438,568
精华内容 175,427
关键字:

scale