zoukankan      html  css  js  c++  java
  • AS3.0 几何结构 Point对象和Rectangle对象

     几何结构,主要是完成Flash编程中,一些和几何相关的内容。如显示对象的变形角度、公式计算等。可能很多人和我一样,高中学的几何知识,差不多都已经还给老师了。不过也不用太担心,因为一般情况下,我们也用不到非常复杂的几何处理。我这里就介绍点非常简单的知识,日常的编程中需要用到。

          (一)Point对象

          Point对象是一个点对象,在显示编程的不少地方都需要用到Point对象。创建一个Point对象方式如下:

          var p:Point = new Point(3,4); //3:x坐标 4:y坐标

          然后可以通过p.x和p.y属性来获得和修改该Point对象的坐标值。

          这里有一个非常实用的属性,你可以通过p.length来获得p到原点(0,0)的距离。

          Point对象还有几个实用的方法,Point对象的方法访问和其他类略有不同,我通过下面的例子说明:

          (1) distance()

          用来获得两个点对象之间的距离。

          var p1:Point = new Point(3,4);

          var p2:Point = new Point(6,8);

          trace(Point.distance(p1,p2)); //Point对象方法的使用

          (2) interpolate()

          这个也是个常用的方法,我通过例子来说明用法:

          var p1:Point = new Point(3,4);

          var p2:Point = new Point(6,8);

          var p3:Point = Point.interpolate(p1,p2,0.9);

          trace(p3.toString()); //返回:(x=3.3, y=4.4)

          这个方法的意思是,返回p1、p2连成的直线90%的点位置,这个90%是相对于p1点的。

          (3) normalize()、offset()、polar()

          这三个方法都是用来移动点的位置的,我这里就不多做介绍了,也不是非常常用。感兴趣的朋友可以自己了解下。

          (二)Rectangle对象

          Rectangle对象是一个矩形对象,也是显示编程中经常用到的。创建一个矩形对象的方式如下:

          var p:Rectangle = new Rectangle(0,0,100,50); //参数分别为x坐标、y坐标、宽、高

          Rectangel的属性图如下:

          

          其中,top、left、bottom、right、width、height返回的是数值,topLeft和bottomRight返回的是一个坐标点(Point)。如果你改变这些数值的话,同时会改变矩形的形状大小。

          如果只是要平移矩形,请改变矩形的x、y属性。

          另外,可以用size属性查看变形后矩形的宽和高,返回的是一个以宽和高为数值表示的坐标点。

          Rectangle也有一些比较常用的方法,如下:

          (1)contains()、containsPoint()

          这两个方法返回的都是布尔值。并且,只是传递的参数不同,意义是一样的,用来判断矩形内是否包含该点。

          (2)containsRect()、intersection()、intersects()、union()

          这四个方法的作用差不多,我放在一起介绍了。

          containsRect():返回一个布尔值,判断参数矩形是否包含在目标矩形内。如果完全包含,返回true,否则返回false。

          intersects():返回一个布尔值,判断参数矩形是否与目标矩形相交。如果相交返回true,否则返回false。

          intersection():如果两个矩形相交,则返回相交部分的矩形。如果没有相交,则返回一个空的矩形。如下图所示:

          

          union():返回两个矩形的最大矩形空间。如下图所示:

          

  • 相关阅读:
    MySql中把一个表的数据插入到另一个表中的实现代码
    mysql中key 、primary key 、unique key 与index区别
    Git忽略规则和.gitignore规则不生效的解决办法
    将从数据库获取的秒数转换为00:00:00格式
    sql查询平均下单时间
    Intersection of Two Linked Lists
    Insertion Sort List
    Delete Node in a Linked List
    Copy List with Random Pointer
    Contains Duplicate
  • 原文地址:https://www.cnblogs.com/shown/p/3006812.html
Copyright © 2011-2022 走看看