无标题文档
关于Point类的使用
Point 类表示二维坐标系统中的一个位置,其中 x 表示水平轴,y 表示垂直轴。
说的简单点,就是我们从高手开始学的坐标系统,学过基本的数学知识应该就会用。
创建坐标的一个点的方法如下
import flash.geom.Point
var myPoint:Point=new Point()
//var myPoint:flash.geom.Point = new flash.geom.Point();
属性摘要
修饰符 |
属性 |
说明 |
|
length:Number |
从 (0,0) 到此点的线段长度。 |
|
x:Number |
该点的水平坐标。 |
|
y:Number |
该点的垂直坐标。 |
方法摘要
修饰符 |
签名 |
说明 |
|
add(v:Point) : Point |
将另一个点的坐标添加到此点的坐标以创建一个新点。 |
|
clone() : Point |
创建此 Point 对象的副本。 |
static |
distance(pt1:Point, pt2:Point) : Number |
返回 pt1 和 pt2 之间的距离。 |
|
equals(toCompare:Object) : Boolean |
确定两个点是否相同。 |
static |
interpolate(pt1:Point, pt2:Point, f:Number) : Point |
确定两个指定点之间的点。 |
|
normalize(length:Number) : Void |
将 (0,0) 和当前点之间的线段缩放为设定的长度。 |
|
offset(dx:Number, dy:Number) : Void |
按指定量偏移 Point 对象。 |
static |
polar(len:Number, angle:Number) : Point |
将一对极坐标转换为笛卡尔点坐标。 |
|
subtract(v:Point) : Point |
从此点的坐标中减去另一个点的坐标以创建一个新点。 |
|
toString() : String |
返回包含 x 和 y 坐标的值的字符串。 |
下个逐个说明用法:
1.add用法:将另一个点的坐标添加到此点的坐标以创建一个新点,意思就跟向量相加一样
import flash.geom.Point;
var point_1:Point = new Point(4, 8);
var point_2:Point = new Point(1, 2);
var resultPoint:Point = point_1.add(point_2);
trace(resultPoint.toString());
// (x=5, y=10)
2. clone 创建对象副本
import flash.geom.Point;
var myPoint:Point = new Point(1, 2);
var clonedPoint:Point = myPoint.clone();
trace(clonedPoint.x);
//
1
trace(clonedPoint.y);
// 2
3.distance 计算第一个点和第二个点之间的距离,
计算公式为distance=((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))的开方
import flash.geom.Point;
var point_1:Point = new Point(0, 0);
var point_2:Point = new Point(3, 4);
var distanceBetween:Number = Point.distance(point_1, point_2);
trace(distanceBetween); // 5
4.equals 确定两个点坐标是否相同,相同则为 true;如果不相同,则为 false
import flash.geom.Point;
var point_1:Point = new Point(1, 2);
var point_2:Point = new Point(1, 2);
var point_3:Point = new Point(4, 8);
trace(point_1.equals(point_2)); // true
trace(point_1.equals(point_3)); // false
5.interpolate 返回两个指定点之间的点,比如两点连成一直线,interpolate就是返回直线上的点,有三个参数,官方帮助文件
参数
pt1:flash.geom.Point - 第一个点。
pt2:flash.geom.Point - 第二个点。
f:Number - 两个点之间的内插级别。指示新点将位于 pt1 和 pt2 连成的直线上的什么位置。如果 f=0,则返回 pt1;如果 f=1;则返回 pt2。
但我发现刚好是相反的,大家注意
import flash.geom.Point;
var point_1:Point = new Point(-100, -100);
var point_2:Point = new Point(50, 50);
var interpolatedPoint1:Point = Point.interpolate(point_1, point_2, 0);
var interpolatedPoint2:Point = Point.interpolate(point_1, point_2, .5);
var interpolatedPoint3:Point = Point.interpolate(point_1, point_2, 1);
trace(interpolatedPoint1.toString());
// (x=50, y=50)
trace(interpolatedPoint2.toString());
// (x=-25, y=-25)
trace(interpolatedPoint3.toString());
// (x=-100, y=-100)
6.length 从 (0,0) 到此点的线段长度 ,这个很简单,直接用勾骨定理计算
import flash.geom.Point;
var myPoint:Point = new Point(3,4);
trace(myPoint.length); // 5
7.normalize 设定(0,0) 和当前点之间的线段的缩放长度 normalize改变,坐标也将随着缩放改变
import flash.geom.Point;
var normalizedPoint:Point = new Point(3, 4);
trace(normalizedPoint.length); // 5
trace(normalizedPoint.toString()); // (x=3, y=4)
normalizedPoint.normalize(10);
trace(normalizedPoint.length); // 10
trace(normalizedPoint.toString()); // (x=6, y=8)
8.offset 按指定量偏移 Point 对象。dx 的值将添加到 x 的原始值中以创建新的 x 值。dy 的值将添加到 y 的原始值中以创建新的 y 值
import flash.geom.Point;
var myPoint:Point = new Point(1, 2);
trace(myPoint.toString()); // (x=1, y=2)
myPoint.offset(4, 8);
trace(myPoint.toString()); // (x=5, y=10)
比较add和offset的区别,
add是两个点之间的相加,offset是偏移 Point自身对象
9.polar 将一对极坐标转换为笛卡尔点坐标 暂时还不理解,55555,先放着,-_-
10.subtract 从此点的坐标中减去另一个点的坐标以创建一个新点
跟add方法相反
import flash.geom.Point;
var point_1:Point = new Point(4, 8);
var point_2:Point = new Point(1, 2);
var resultPoint:Point = point_1.subtract(point_2);
trace(resultPoint.toString()); // (x=3, y=6)
11.toString 返回包含 x 和 y 坐标的值的字符串 不转换的话返回的是Object,转换后为String,可以用typeof测试
好了说完了,我感觉polar最重要了,就这个没理解.汗