首页 > 其他分享 >Point中的三个静态方法

Point中的三个静态方法

时间:2023-01-06 17:36:58浏览次数:40  
标签:静态方法 Point 30 三个 var new pt2 pt1


翻老贴的时候,找到了春叶飘零(2006-10-12)的这篇文章:

import flash.geom.Point
var __pointOld:Point=new Point(mouseX,mouseY)//获取鼠标初始位置
this.addEventListener("enterFrame",enterHandler)//注册真循环事件
function enterHandler(e:Event){
var pointNew:Point=new Point(mouseX,mouseY)
var step:Number=Point.distance(pointNew,__pointOld)//求每真移动距离
trace(step*stage.frameRate)//得出每秒鼠标的移动象素
__pointOld=pointNew//新值换旧值
}


查了下API,发现Point中有三个静态方法。

1、Point.distance(pt1:Point,pt2:Point):Number


说明,返回pt1和pt2之间的距离。

var pt1:Point=new Point(10,10);
var pt2:Point=new Point(30,30);
trace(Point.distance(pt1,pt2));//28.284271247461902


==========================================华丽丽分割线======================================

2、Point.interpolate(pt1:Point,pt2:Point,f:Number):Point

//interpolate有篡改,插入的意思。

说明,在两点之间插入一个点。

f,取值范围在0~1之间,确定的是插入点的级别。接近1时,内插点则靠近pt1(第一个点),接近0时,内插点则靠近pt2(第二个点)。

var pt1:Point=new Point(10,30);
var pt2:Point=new Point(30,30);
var insertPoint:Point=Point.interpolate(pt1,pt2,0.5);
trace(insertPoint.x,insertPoint.y);//20 30


==========================================华丽丽分割线======================================


3、Point.polar(len:Number,angle:Number):Point

说明,将极坐标转换为平面坐标。

先来看看极坐标的定义,

在 平面内取一个定点O, 叫极点,引一条射线Ox,叫做极轴,再选定一个长度单位和角度的正方向(通常取逆时针方向)。对于平面内任何一点M,用ρ表示线段OM的长度,θ表示从Ox到OM的角度,ρ叫做点M的极径,θ叫做点M的极角,有序数对 (ρ,θ)就叫点M的极坐标,这样建立的坐标系叫做极坐标系。(摘自《百度百科》)


angle取的是一个弧度值。角度转弧度 -> Math.PI*degress/180
var pt:Point=Point.polar(10,90*Math.PI/180);
trace(pt.x,pt.y);//6.123031769111886e-16 10




==========================================华丽丽分割线======================================

==========================================华丽丽分割线======================================


其实点还有其他非常有用的属性及方法。

3个公有属性

length:number //从 (0,0) 到此点的线段长度

x:number //该点的水平坐标 

y:number //该点的垂直坐标。 

其他常用方法。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

add(v:Point):Point

将另一个点的坐标添加到此点的坐标以创建一个新点.

var pt1:Point=new Point(10,30);
var pt2:Point=new Point(30,30);
var npt:Point=pt1.add(pt2);
trace(npt.toString());


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------


clone():Point

考贝一个点。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

equals(toCompare:Point):Boolean

确定两个点是否相同。 如果两个点具有相同的 xy 值,则它们是相同的点。 



-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

normalize(thickness:Number)

var pt1:Point=new Point(8,6);
pt1.normalize(5);
trace(pt1);//(x=4, y=3)


用一个直角三角形来描述理解起来会比较直观一点。(勾股定理)

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------


offset(dx:Number,dy:Number)

没有返回值。按指定的数值偏移原点的x,y坐标。

var pt1:Point=new Point(10,30);
pt1.offset(10,10);
trace(pt1.toString()); //(x=20, y=40)

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------




subtract(v:Point):Point

从此点的坐标减去v点的坐标,以创建一个新点。

var pt1:Point=new Point(10,30);
var pt2:Point=new Point(30,30);
var npt:Point=pt2.subtract(pt1);
trace(npt.x,npt.y); //20 0


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------



toString():String //以字符串形式返回该点的x,y坐标值。






标签:静态方法,Point,30,三个,var,new,pt2,pt1
From: https://blog.51cto.com/u_15932543/5994463

相关文章

  • Asp.Net Core EndPoint 终结点路由工作原理解读
    一、背景在本打算写一篇关于Identityserver4的文章时候,却发现自己对EndPoint-终结点路由还不是很了解,故暂时先放弃了IdentityServer4的研究和编写;所以才产生了今天这篇......
  • 发送给十多个第三个
     ......
  • 重磅直播 | CenterPoint:三维点云目标检测算法梳理及最新进展(CVPR2021)
    本期由德州大学奥斯汀分校在读生尹天为分享,分享的主题为《CenterPoint:三维点云目标检测算法梳理及最新进展(CVPR2021)》,主讲人会对该领域的核心和主流技术进行详细讲解,欢迎大......
  • 并发编程的场景中的三个bug源头:可见性、原子性、有序性
    1.可见性:多核系统每个cpu自带高速缓存,彼此间不交换信息case:两个线程对同一份实例变量count累加,结果可能不等于累加之和,因为线程将内存值载入各自的缓存中,之后的累加操作基......
  • L2-005 集合相似度 (25 point(s))
    给定两个整数集合,它们的相似度定义为:Nc/Nt×100%。其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数。你的任务就是计算任意一对给定集合的相......
  • L2-006 树的遍历 (25 point(s))
    给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行......
  • 7-1 购买火车票 (15 point(s))
    我们省略了很多现实中购买火车票的细节,对于一趟列车,根据输入的购票订单信息,查询余票并购票。座位是复用的,即订某段行程,只在该段行程内占据一个座位,在行程外不占座位。举个......
  • 7-3 统计一行文本的单词个数 (15 point(s))
    本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。输入格式:输入给出一行字符。输出格式:在一......
  • 比较三个数的大小
    1、方法一2、方法二3、方法二的优缺点1、方法一先比较a和b,将较大值赋值给max再比较max和c,若c>max,把c赋值给max最后输出max#include<stdio.h>#include<stdlib.h>intmain(){......
  • SiteFactory编辑器支持PowerPoint粘贴
    ​ 当前功能基于PHP,其它语言流程大致相同 1.新增上传wordjson配置在ueditor\php\config.json中新增如下配置:     /* 上传word配置 */    "wordAction......