手持终端
Eclipse平台下Android开发环境的搭建
PhoneGap配置到Eclipse开发环境
使用PhoneGap开发Android应用程序
PhoneGap3.0以上版本配置到Eclipse开发环境
使用PhoneGap3.0版本开发Android应用程序
PhoneGap3.0的第三方Android插件
Cordova配置到Android Studio开发环境
Android系统基本架构
Android的字符串颜色图片样式
Android的常用控件及菜单
Android的消息提示及传递
Android系统的组件通信
Android系统的Service
Android的广播消息接收
Android的数据存储与访问
Android系统的网络应用
Android图形图像处理
Android的Fragment框架
Android系统的并发编程
Java源文件结构与保留字
Java语言的数据类型与变量
Java的运算符与流程控制
Java语言的数组及操作
Java面向对象编程
Java的常用类
Android开发常用工具及命令
Android应用程序权限管理
Android系统提供的R类内置资源
Android系统的控件类及其方法
Android系统的菜单类及其方法
Android系统的对话框
Android应用程序模型及组件
Android的绘图类及方法
Android系统的动画效果
Android的数据库操作
Android的多媒体功能
Android系统照相机的使用
Android的文本朗读TTS
获取Android系统信息
Android系统的电话操作
Android系统的定位
Android系统的传感器
1. 基础父类C2DBase:
C2DBase类是GeoLib库中点、线、向量等所有类的父类。此类为抽象类,其方法均为抽象方法,且均在非抽象子类中实现。
方法 |
含义 |
public abstract void Move(C2DVector Vector) |
根据给定的向量移动C2DBase子类对象 |
public abstract void RotateToRight(double aAng,C2DPoint Origin) |
C2DBase子类对象绕指定点逆时针旋转指定角度,aAng表示旋转角弧度,Origin指定点 |
public abstract void Grow(double dFactor,C2DPoint Origin) |
绕指定点将C2DBase子类对象大小变为原来的dFactor倍,Origin指定点 |
public abstract void Reflect(C2DPoint Point) |
将C2DBase子类对象关于对称点对称,Point指定点 |
public abstract void Reflect(C2DLine Line) |
将C2DBase子类对象关于对称线对称,Line指定线 |
public abstract double Distance(C2DPoint Point) |
获取C2DBase子类对象到指定点Point的最短距离 |
public abstract void GetBoundingRect(C2DRect Rect) |
获取C2DBase子类对象的包围边框,Rect为C2DRect对象,表示获取的矩形边框 |
2. 点类C2DPoint:
C2DPoint表示二维坐标,其是由两个double型变量组成,支持+=、-=、x=和/=操作符。本类继承于C2DBase类,属性包括x坐标和y坐标:
属性 |
含义 |
double x |
表示点在坐标系中的x坐标值 |
double y |
表示点在坐标系中的y坐标值 |
构造器含有无参构造器、含参构造器等:
构造器 |
含义 |
public C2DPoint() |
创建C2DPoint类对象 |
public C2DPoint(C2DPoint Other) |
创建C2DPoint类对象,Other参数表示另一个C2DPoint对象 |
public C2DPoint(C2DVectort Vector) |
创建C2DPoint类对象,Vector参数表示向量对象 |
public C2DPoint(double dx,double dy) |
创建C2DPoint类对象,dx/dy参数为C2DPoint类对象的x/y值 |
C2DPoint常用方法有:
方法 |
含义 |
public void Set(double dx,double dy) |
设定x、y值,dx/dy参数为C2DPoint类对象的x/y值 |
public void Set(C2DPoint pt) |
设置C2DPoint类,参数pt表示另一个C2DPoint对象 |
public C2DPoint GetMidPoint(C2DPoint Other) |
计算两个点的中点,Other表示另一个C2DPoint对象 |
public C2DPoint MakeVector(C2DPoint PointTo) |
计算两点组成的向量,PointTo表示另一C2DPoint对象 |
public C2DPoint GetPointTo(C2DVector V1) |
获取点与向量运算之后的点,V1表示进行运算的向量 |
public static C2DPoint Add(C2DPoint P1,C2DPoint P2) |
计算两点相加之后的点,P1和P2表示运算的两个点 |
public static C2DPoint Minus(C2DPoint P1,C2DPoint P2) |
计算两点相减之后的点,P1和P2表示运算的两个点 |
public void Multiply(double dFactor) |
点对象的x、y坐标均乘以表示变化倍数的dFactor |
public void Divide(double dFactor) |
点对象的x、y坐标均除以表示变化倍数的dFactor |
public boolean PointEqualTo(C2DPoint Other) |
判断两个点是否相同,Other表示另一个C2DPoint对象 |
public void ReflectY() |
将点的x坐标关于y轴对称 |
public void ReflectX() |
将点的y坐标关于x轴对称 |
3. 向量类C2DVector:
C2DVector类由两个double类型的数组组成,表示二维向量或者二维笛卡尔坐标,支持+=、-=和x=等操作符。该类的属性有:
属性 |
含义 |
public double i |
表示x方向分量 |
public double j |
表示y方向分量 |
构造器含有无参构造器、含参构造器等:
构造器 |
含义 |
public C2DVector() |
创建C2DVectort类对象 |
public C2DVector(double di,double dj) |
创建C2DVector类对象,di/dj参数分别赋值给i/j |
public C2DVector(C2DVector Other) |
创建C2DVector类对象,Other参数表示另一个C2DVector对象 |
public C2DVector ( C2DPoint PointFrom, C2DPoint PointTo) |
创建C2DVector类对象,PointFrom表示向量起点,PointTo表示向量终点 |
public C2DVector(C2DPoint Point) |
创建C2DVector类对象,Point被赋值给向量对象 |
C2DVector常用方法有:
方法 |
含义 |
public void Set(C2DVector Other) |
设置向量,参数Other表示另一个C2DVector对象 |
public void Reverse() |
逆转方向向量,即i=-i,j=-j |
public void TurnRight() |
将向量顺时针旋转90度 |
public void TurnRight(double dAng) |
将向量顺时针旋转指定度,dAng表示旋转弧度 |
public void TurnLeft() |
将向量逆时针旋转90度 |
public void TurnLeft(double dAng) |
将向量逆时针旋转指定度,dAng表示旋转弧度 |
public void GetLength() |
获取向量长度 |
public void SetLength(double dDistance) |
设置向量长度,dDistance表示指定长度 |
public void MakeUnit() |
向量单位化,即归一化 |
public static C2DVector Add(C2DVector V1,C2DVector V2) |
两个向量进行加法,V1和V2表示两个向量 |
public static C2DVector Minus(C2DVector V1,C2DVector V2) |
两个向量进行减法,V1和V2表示两个向量 |
public void Multiply(double dFactor) |
向量与数值进行乘法,dFactor表示被乘的数值 |
public double Dot(C2DVector Other) |
向量点乘,Other指定另一个向量 |
public boolean VectorEqualTo(C2DVector Other) |
判断两个向量是否相等,Other指定另一个向量 |
public double AngleFromNorth() |
获取向量角弧度,垂直向上为0,顺时针为正 |
4. 各种线型的父类C2DLineBase:
本类为抽象类,其方法均为抽象方法,并且其方法均在子类中具体实现。常用方法有:
方法 |
含义 |
public abstract boolean Crosses(C2DLineBase Other,ArrayList<C2DPoint> IntersectionPts) |
判断当前C2DLineBase子类对象与另一个是否相交,并将交点存入 IntersectionPts中 |
public abstract boolean Crosses(C2DLineBase Other) |
判断当前C2DLineBase子类对象与另一个是否相交 |
public abstract double Distance(C2DPoint TestPoint,C2DPoint ptOnThis) |
计算当前C2DLineBase子类对象与指定点之间的最短距离,TestPoint为指定点,ptOnThis表示最近的点 |
public abstract double Distance(C2DLineBase Other,C2DPoint ptOnThis,C2DPoint ptOnOther) |
计算当前C2DLineBase子类对象与另一个之间的最短距离,Other为另一个C2DLineBase对象 |
public abstract C2DPoint GetPointFrom() |
获取C2DLineBase子类对象的起点 |
public abstract C2DPoint GetPointTo() |
获取C2DLineBase子类对象的终点 |
public abstract double GetLength() |
获取C2DLineBase子类对象的长度 |
public abstract void ReverseDirection() |
反转方向线,即将原来的起点作为终点,终点为起点 |
public abstract void GetSubLines (ArrayList <C2DPoint>PtsOnLine, ArrayList<C2DLineBase> LineSet) |
根据PtsOnLine获取其子线 |
public abstract C2DLineBase CreateCopy() |
创建C2DLineBase子类对象的副本 |
5. 线段类C2DLine:
C2DLine为C2DLineBase抽象类的子类,构造器有:
构造器 |
含义 |
public C2DLine() |
创建C2DLine类对象 |
public C2DLine(double dPt1x,double dPt1y,double dPt2x,double dPt2y) |
创建C2DLine类对象,dPt1表示起点,dPt2表示终点 |
public C2DLine ( C2DPoint PointFrom, C2DVector VectorTo) |
创建C2DLine类对象,PointFrom表示线段起点,VectorTo表示线段终点的向量 |
public C2DLine ( C2DPoint PointFrom, C2DPoint PointTo) |
创建C2DLine类对象,PointFrom表示线段起点,PointTo表示线段终点 |
public C2DLine(C2DLine Other) |
创建C2DLine类对象,Other表示另一个C2DLine对象 |
C2DLine的设定方法有:
方法 |
含义 |
public void Set(C2DLine Other) |
设置向量,参数Other表示另一个C2DLine对象 |
public void Set( C2DPoint PointFrom, C2DPoint PointTo) |
设置线段的起点和终点 |
public void Set( C2DPoint PointFrom, C2DVector VectorTo) |
设置线段的起点和终点矢量 |
public void SetPointTo(C2DPoint PointTo) |
将线段的终点设为PointTo |
public void SetPointFrom(C2DPoint PointFrom) |
将线段的起点设为PointFrom |
除了父类C2DLineBase的方法,C2DLine类的常用方法有:
方法 |
含义 |
public boolean IsOnRight(C2DPoint OtherPoint) |
判断OtherPoint点是否在线段的右侧 |
public double DistanceAsRay(C2DPoint TestPoint) |
假设当前C2DLine为射线,计算线和指定点之间的最短距离 |
public double DistanceAsRay(C2DPoint TestPoint, C2DPoint ptOnThis) |
假设当前C2DLine为射线,计算线和指定点之间的最短距离,ptOnThis表示最短距离对应的点 |
public double Distance( C2DPoint TestPoint) |
计算线与点之间的最短距离 |
public void SetLength( double dLength) |
将线段长度设置为dLength,线段起点不变 |
public C2DPoint GetMidPoint() |
获取线段的中点 |
public double GetY(double dx) |
假设线无限长,根据dx获取对应的y值 |
public C2DPoint GetPointFrom() |
获取线段的起点 |
public void Move(C2DVector vector) |
根据给定的向量移动线段 |
public void Grow(double dFactor,C2DPoint Origin) |
以Origin为固定点,线段长变为原来的dFactor倍 |
public void GrowFromCenter(double dFactor) |
表示线段从中心开始变化,dFactor表示变化的倍数 |
public boolean WouldCross(C2DLine Other) |
判断当前线段与一条无限长的线是否会相交 |
public boolean Crosses(C2DLine Other, ArrayList <C2DPoint> IntersectionPts, boolean bOnThis, boolean bOnOther, boolean bAddPtIfFalse) |
判断两条线是否相交。Other表示另一线段,交点存储IntersectionPts,bOnThis和bOnOther分别表示交点是否在当前及另一条线上,bAddPtIfFalse用于表示两条线不平行时是否添加交点 |
public boolean CrossesRay(C2DLine Ray, ArrayList <C2DPoint> IntersectPts) |
判断当前线段是否与Ray相交,交点存储IntersectPts |
public void GetBoundingRect(C2DRect Rect) |
获取边界矩形,Rect为输出的边界矩形 |
public void RotateToRight(double dAng, C2DPoint Origin) |
线段绕指定点逆时针旋转指定角度 |
public void Reflect(C2DPoint Point) |
将线段关于指定点对称 |
public void Reflect(C2DLine Line) |
将线段关于指定线对称 |
6. 圆弧类C2DArc:
C2DArc是C2DLineBase的子类,属性有:
属性 |
含义 |
public double Radius |
圆弧半径 |
public boolean CentreOnRight |
判断相关圆的中心是否在线的右侧 |
public boolean ArcOnRight |
判断圆弧是否在线的右侧 |
protected C2DLine line |
被用来定义圆弧启动和终点的直线 |
C2DArc的构造器:
构造器 |
含义 |
public C2DArc() |
创建C2DArc类对象 |
public C2DArc(C2DArc Other) |
创建C2DArc类对象,Other表示另一个C2DArc类对象 |
public C2DArc ( C2DPoint PtFrom, C2DPoint PtTo, double dRadius, boolean bCentreOnRight, boolean bArcOnRight) |
创建C2DArc类对象,使用参数起点、终点、半径。bCentreOnRight表示圆弧所在圆心是否在直线右侧,bArcOnRight表示圆弧是否在直线右侧 |
public C2DArc(C2DPoint PtFrom, C2DVector Vector, double dRadius, boolean bCentreOnRight, boolean bArcOnRight) |
创建C2DArc类对象,使用参数起点、终点向量、半径。bCentreOnRight表示圆弧所在圆心是否在直线右侧,bArcOnRight表示圆弧是否在直线右侧 |
public C2DArc(C2DLine ArcLine, double dRadius, boolean, boolean bCentreOnRight, boolean bArcOnRight) |
创建C2DArc类对象,ArcLine定义圆弧的起点和终点的直线,dRadius表示圆弧所在圆的半径,bCentreOnRight表示圆弧所在圆心是否在直线右侧,bArcOnRight表示圆弧是否在直线右侧 |
C2DArc的设定方法有:
方法 |
含义 |
public void Set(C2DArc Other) |
设置当前C2DArc对象,Other表示另一个C2DArc对象 |
public void Set ( C2DPoint PtFrom, C2DPoint PtTo, double dRadius, boolean bCentreOnRight, boolean bArcOnRight) |
设置当前C2DArc对象,使用参数起点、终点、半径。bCentreOnRight表示圆弧所在圆心是否在直线右侧,bArcOnRight表示圆弧是否在直线右侧 |
public void Set(C2DPoint PtFrom, C2DVector Vector, double dRadius, boolean bCentreOnRight, boolean bArcOnRight) |
设置当前C2DArc对象,使用参数起点、终点矢量、半径。bCentreOnRight表示圆弧所在圆心是否在直线右侧,bArcOnRight表示圆弧是否在直线右侧 |
public void Set(C2DLine ArcLine, double dRadius, boolean, boolean bCentreOnRight, boolean bArcOnRight) |
设置当前C2DArc对象,ArcLine定义圆弧的起点和终点的直线,dRadius表示圆弧所在圆的半径。bCentreOnRight表示圆弧所在圆心是否在直线右侧,bArcOnRight表示圆弧是否在直线右侧 |
public void Set(C2DLine ArcLine,, C2DPoint ptOnArc) |
设置当前C2DArc对象,ArcLine表示定义圆弧起点和终点的直线,ptOnArc表示圆弧边缘上的点 |
除了父类C2DLineBase的方法,C2DArc类的常用方法有:
方法 |
含义 |
public boolean IsValid() |
判断半径是否足够长以连接弧的终点 |
public C2DPoint GetCircleCentre() |
获取圆弧对应的圆心 |
public double GetSegmentAngle() |
获取最小的角,单位弧度 |
public C2DPoint GetPointFrom() |
获取圆弧的起点 |
public C2DPoint GetPointTo() |
获取圆弧的终点 |
public boolean CrossesRay( C2DLine Ray, ArrayList <C2DPoint> IntersectionPts) |
判断当前C2DArc对象与指定线是否相交,交点存入IntersectionPts列表中 |
public C2DPoint GetMidPoint() |
获取圆弧的中点 |
public C2DPoint GetPointOn ( double dFactorFromStart) |
获取圆弧上的点,dFactorFromStart用于具体确定圆弧上的某一点 |
public void Reflect(C2DPoint Point) |
将圆弧关于指定点进行对称操作 |
public void Reflect(C2DLine Line) |
将圆弧关于指定线进行对称操作 |
public void GetBoundingRect(C2DRect Rect) |
获取圆弧的矩形边框,Rect为输出的矩形边框 |
7. 圆形类C2DCircle:
C2DCircle类为C2DBase类的子类,用于圆形对象。属性有:
属性 |
含义 |
public double Radius |
圆的半径 |
C2DCircle的构造器:
构造器 |
含义 |
public C2DCircle() |
创建C2DCircle类对象 |
public C2DCircle(C2DCircle Other) |
创建C2DCircle类对象,Other表示另一个C2DCircle类对象 |
public C2DCircle ( C2DPoint Point, double NewRadius) |
创建C2DCircle类对象,Point表示圆心,NewRadius表示圆的半径 |
C2DCircle的设定方法有:
方法 |
含义 |
public void Set(C2DCircle Other) |
设置当前C2DCircle对象,Other表示另一个C2DCircle对象 |
public void Set ( C2DPoint Point, double NewRadius) |
设置当前C2DCircle对象,Point表示圆心,NewRadius表示圆的半径 |
除了父类C2DBase的方法,C2DCircle类的常用方法有:
方法 |
含义 |
public boolean Contains(C2DPoint pt) |
判断指定点是否包含在圆内 |
public boolean Crosses( C2DCircle Other, ArrayList <C2DPoint> IntersectionPts) |
判断圆是否与指定圆相交,交点存入IntersectionPts列表中 |
public boolean Crosses( C2DLine Line, ArrayList <C2DPoint> IntersectionPts) |
判断圆是否与指定线相交,交点存入IntersectionPts列表中 |
public boolean CrossesRay( C2DLine Ray, ArrayList <C2DPoint> IntersectionPts) |
判断圆是否与指定射线相交,交点存入IntersectionPts列表中 |
public double Distance( C2DCircle Other, C2DPoint ptOnThis, C2DPoint ptOnOther) |
计算圆与另一个圆之间的最短距离,ptOnThis表示当前圆上的点,ptOnOther表示另一个圆上的点 |
public double Distance( C2DLine Line, C2DPoint ptOnThis, C2DPoint ptOnOther) |
计算圆与指定线之间的最短距离,ptOnThis表示当前圆上的点,ptOnOther表示指定线上的点 |
public double Distance( C2DPoint Point, C2DPoint ptOnThis) |
计算圆到指定点的最短距离,ptOnThis表示当前圆上的点 |
public double GetArea() |
获取圆的面积 |
public C2DPoint GetCentre() |
获取圆的圆心 |
public double GetPerimeter() |
获取圆的周长 |
public boolean IsWithinDistance ( C2DPoint pt, double dRange) |
判断指定点到圆心的距离是否小于圆的半径与dRange之和 |
public boolean SetCircumscribed ( C2DPoint pt1, C2DPoint pt2, C2DPoint pt3) |
设置外接圆,如果pt1、pt2、pt3三点可以组成三角形返回true,并设置三角形外接圆 |
public boolean SetCircumscribed ( C2DTriangle Triangle) |
设置三角形的外接圆,判断三角形三个点是否共线,共线返回false。返回true时设置三角形外接圆 |
public void SetInscribed ( C2DPoint pt1, C2DPoint pt2, C2DPoint pt3) |
设置内切圆,如果pt1、pt2、pt3三点可以组成三角形返回true,并设置三角形内切圆 |
public void SetInscribed ( C2DTriangle Triangle) |
设置三角形的内切圆 |
8. 三角形类C2DTriangle:
三角形类C2DTriangle是C2DBase类的子类。属性有:
属性 |
含义 |
public C2DPoint p1 |
三角形的一个点 |
public C2DPoint p2 |
三角形的一个点 |
public C2DPoint p3 |
三角形的一个点 |
C2DTriangle的构造器:
构造器 |
含义 |
public C2DTriangle(C2DPoint pt1, C2DPoint pt2, C2DPoint pt3) |
创建C2DTriangle类对象 |
C2DTriangle的设定方法有:
方法 |
含义 |
public void Set(C2DPoint pt1, C2DPoint pt2, C2DPoint pt3) |
设置三角形的三个点 |
除了父类C2DBase的方法,C2DTriangle类的常用方法有:
方法 |
含义 |
public double GetArea() |
获取三角形的面积 |
public boolean Collinear() |
判断三角形的三个点是否共线,共线返回true |
public boolean Contains(C2DPoint pt) |
判断指定点是否包含在三角形中 |
public double Distance(C2DPoint pt, C2DPoint ptOnThis) |
计算三角形到指定点的最短距离,ptOnThis表示当获得最短距离时三角形上的点 |
public double Distance(C2DTriangle Other, C2DPoint ptOnThis, C2DPoint ptOnOther) |
计算与另一个三角形之间的最短距离,ptOnThis为当前三角形上的点,ptOnOther为另一三角形上的点 |
public boolean IsClockwise () |
判断三角形的三个点是否顺时针顺序 |
public C2DPoint GetCircumCentre() |
获取三角形的外心 |
public C2DPoint GetFermatPoint() |
获取三角形的费尔马点,即到三角形的三个顶点的距离之和最短的点 |
public C2DPoint GetInCentre() |
获取三角形的内心 |
public double GetPerimeter() |
获取三角形的周长 |
public C2DPoint getp1() |
获取三角形的第一个点 |
public C2DPoint getp2() |
获取三角形的第二个点 |
public C2DPoint getp3() |
获取三角形的第三个点 |
9. 无孔多边形:
1)无孔多边形基础类C2DPolyBase:
C2DPolyBase为无孔多边形类的父类,包含基本方法、基本属性及自身构造器。属性为:
属性 |
含义 |
protected C2DLineBaseSet Lines |
表示基础线条 |
protected C2DRect BoundingRect |
表示包围矩形对象 |
protected ArrayList<C2DRect> LineRects |
表示包围矩形中的各个小矩形对象列表 |
C2DPolyBase的构造器:
构造器 |
含义 |
public C2DPolyBase() |
创建C2DPolyBase类对象 |
public C2DPolyBase(C2DPolyBase Other) |
创建C2DPolyBase对象,Other为另一个C2DPolyBase |
无孔多边形基础类C2DPolyBase的常用方法:
方法 |
含义 |
public void Set(C2DPolyBase Other) |
设置当前对象为指定对象 |
public void Clear() |
清空所有物体 |
public void RotateToRight(double dAng, C2DPoint Origin) |
绕指定定点旋转指定的角度 |
public void Move(C2DVector vector) |
以指定方向矢量移动 |
public void Grow(double dFactor, C2DPoint Origin) |
以指定中心点使物体大小变为原来的dFactor倍 |
public double GetPerimeter() |
获取物体的周长 |
public boolean HasCrossingLines() |
判断是否有交叉线 |
public void GetBoundingRect(C2DRect Rect) |
获取物体的包围矩形 |
public C2DRect GetBoundingRect() |
获取物体的包围矩形 |
public ArrayList<C2DRect> getLineRects () |
获取包围矩形中的各个小矩形对象列表 |
public boolean IsClosed() |
判断物体是否封闭 |
public void RandomPerturb() |
使物体按很小的随机向量移动 |
public C2DLineBaseSet getLines() |
获取基础线条 |
public void Reflect(C2DPoint Point) |
物体关于点对称 |
public void Reflect(C2DLine Line) |
物体关于线对象 |
public double Distance(C2DPoint pt) |
获取指定点到物体的最短距离 |
public double Distance( C2DLineBase Line) |
获取到指定线到物体的最短距离 |
public double Distance ( C2DPolyBase Other, C2DPoint ptOnThis, C2DPoint ptOnOther) |
获取当前物体到指定物体的最短距离,ptOnThis为当前物体上的最近点,ptOnOther为另一物体上的点 |
public boolean IsWithinDistance(C2DPoint pt, double dRange) |
判断指定点到物体的距离是否在指定的范围内 |
public boolean Contains(C2DPoint pt) |
判断物体是否包含指定点 |
public boolean Contains(C2DLineBase Line) |
判断物体是否包含指定线 |
public boolean Contains(C2DPolyBase other) |
判断物体是否包含指定物体 |
public boolean Contains(C2DRect Rect) |
判断物体是否包含指定矩形 |
public void GetOverlaps(C2DPolyBase Other, ArrayList <C2DHoledPolyBase> Polygons, CGrid grid) |
获取物体与指定物体的重叠部分,Polygon为存储重叠部分的列表,grid为CGrid对象 |
public void GetNonOverlaps(C2DPolyBase Other, ArrayList <C2DHoledPolyBase> Polygons, CGrid grid) |
获取物体与指定物体的未重叠部分,Polygon为存储未重叠部分的列表,grid为CGrid对象 |
public void GetUnion(C2DPolyBase Other, ArrayList <C2DHoledPolyBase> Polygons, CGrid grid) |
获取物体与指定物体的合并的部分,Polygon为存储合并部分的列表,grid为CGrid对象 |
public boolean Overlaps(C2DPolyBase Other) |
判断物体与指定物体是否重叠 |
public boolean Crosses(C2DLineBase Line) |
判断直线是否穿过物体 |
public boolean Crosses(C2DPolyBase Other) |
判断物体是否穿过物体 |
2)无孔多边形类C2DPolygon:
无孔多边形类C2DPolygon是应用广泛的类,其为C2DPolyBase的子类。属性有:
属性 |
含义 |
protected C2DPolygon subArea1 |
表示当前多边形的凸子区域1 |
protected C2DPolygon subArea2 |
表示当前多边形的凸子区域2 |
C2DPolygon的构造器:
构造器 |
含义 |
public C2DPolygon() |
创建C2DPolygon类对象 |
public C2DPolygon(C2DPolygon Other) |
创建C2DPolygon对象,Other为另一个C2DPolygon |
public C2DPolygon(C2DPolyBase Other) |
创建C2DPolygon对象,Other为C2DPolyBase对象 |
public C2DPolygon (ArrayList <C2DPoint> Points, boolean bRecorderIfNeeded) |
创建C2DPolygon对象,C2DPoint存储多边形点列表, bRecorderIfNeeded表示是否重排Points中各个点的顺序 |
C2DPolygon的常用方法有:
方法 |
含义 |
public void Set(C2DPolygon Other) |
设置当前对象为指定对象 |
public boolean Create (ArrayList <C2DPoint> Points, boolean bRecorderIfNeeded) |
判断是否能创建多边形,C2DPoint存储多边形点列表, bRecorderIfNeeded表示是否重排Points中各个点的顺序 |
public boolean CreateRegular (C2DPoint Centre, double dDistanceToPoints, int nNumberSides) |
判断是否能创建规则多边形,Centre为多边形中心点,dDistanceToPoints为多边形上相邻两点间的距离,nNumberSides为多边形的边数 |
public boolean CreateConvexHull ( C2DPolygon Other) |
判断是否能创建多边形凸包,Other为要创建凸包的多边形对象 |
public boolean CreateConvexSubAreas() |
当前多边形为凸多边形时返回true;否则创建当前凹多边形的凸子区域并返回false |
public void ClearConvexSubAreas() |
除去当前凹多边形的凸子区域 |
public boolean IsConvex() |
判断当前多边形是否为多边形 |
public void RotateToRight(double dAng) |
以多边形中心点逆时针旋转指定角度 |
public void Grow(double dFactor) |
使物体大小变为原来的dFactor倍 |
public boolean HasRepeatedPoints() |
判断是否有重复点 |
public boolean IsClockwise() |
判断当前多边形的点序列是否按顺时针方向卷绕 |
public void GetConvexSubAreas ( ArrayList <C2DPolygon> SubAreas) |
获取当前多边形的凸子区域,SubAreas为存放凸子区域的列表 |
public void Avoid(C2DPolygon Other) |
避免多边形与指定多边形重叠 |
public C2DPoint GetCentroid() |
获取当前多边形的重心 |
public double GetArea() |
获取当前多边形的面积 |
public void GetPointsCopy ( ArrayList <C2DPoint> PointCopy) |
将当前多边形的各个顶点数据复制到指定的点集列表中,PointCopy为指定点列表,存放顶点数据 |
public int GetLeftMostPoint() |
获取多边形最左边的顶点索引值 |
public void Smooth() |
使多边形平滑 |
public void GetBoundingCircle(C2DCircle Circle) |
获取包围圆 |
public boolean CanPointsBeJoined(int nStart, int nEnd) |
判断在连接多边形时是否产生了交叉线,nStart为起始点索引值,nEnd为最后一个点的索引值 |
public boolean Reorder () |
判断是否能减少顶点数来使周长缩短 |
public C2DPolygon getSubArea1() |
获取当前多边形的凸子区域1 |
public C2DPolygon getSubArea2() |
获取当前多边形的凸子区域2 |
10. 有孔多边形:
1)有孔多边形基础类C2DHoledPolyBase:
C2DHoledPolyBase为有孔多边形父类,包含构造器、基本属性和基本方法。属性有:
属性 |
含义 |
protected C2DPolyBase Rim |
表示多边形基础类对象 |
protected ArrayList <C2DPolyBase> Holes |
表示多边形基础类列表 |
有孔多边形基础类C2DHoledPolyBase的构造器:
构造器 |
含义 |
public C2DHoledPolyBase() |
创建C2DHoledPolyBase类对象 |
public C2DHoledPolyBase ( C2DHoledPolyBase Other) |
创建C2DHoledPolyBase对象,Other为另一个C2DHoledPolyBase对象 |
public C2DHoledPolyBase ( C2DPolyBase Other) |
创建C2DHoledPolyBase对象,Other为C2DPolyBase对象 |
有孔多边形基础类C2DHoledPolyBase的常用方法:
方法 |
含义 |
public void Set(C2DHoledPolyBase Other) |
设置当前对象为指定对象 |
public int GetLineCount() |
获取该类中所有多边形基础类对象的线条数量 |
public void Clear() |
清空所有多边形基础类对象 |
public void RotateToRight(double dAng, C2DPoint Origin) |
绕指定定点逆时针旋转指定的角度 |
public void Move(C2DVector vector) |
以指定方向矢量移动 |
public void Grow(double dFactor, C2DPoint Origin) |
以指定点使物体大小变为原来的dFactor倍 |
public double GetPerimeter() |
获取该类中所有多边形基础类对象的周长 |
public boolean HasCrossingLines() |
判断是否有交叉线 |
public void GetBoundingRect(C2DRect Rect) |
获取物体的包围矩形 |
public void RemoveHole(int i) |
列表中移除与指定索引值相对应的多边形对象 |
public void AddHole(C2DPolyBase Poly) |
将指定的C2DPolyBase对象添加到Holes列表中 |
public void SetHole(int i, C2DPolyBase Poly) |
在Holes列表的指定索引处插入或替换多边形对象,i指定索引值 |
public C2DPolyBase GetHole(int i) |
获取Holes列表中索引为i的多边形对象 |
public int getHoleCount() |
获取Holes列表的长度 |
public void setRim(C2DPolyBase rim) |
设置多边形基础类对象,rim为C2DPolyBase对象 |
public C2DPolyBase getRim() |
获取多边形基础类对象 |
public void Reflect(C2DPoint Point) |
物体关于点对称 |
public void Reflect(C2DLine Line) |
物体关于线对象 |
public double Distance(C2DPoint pt) |
获取指定点到物体的最短距离 |
public double Distance( C2DLineBase Line) |
获取到指定线到物体的最短距离 |
public double Distance ( C2DPolyBase Poly, C2DPoint ptOnThis, C2DPoint ptOnOther) |
获取当前物体到指定物体的最短距离,ptOnThis为当前物体上的最近点,ptOnOther为另一物体上的点 |
public boolean IsWithinDistance(C2DPoint pt, double dDist) |
判断指定点到物体的距离是否在指定的范围内 |
public boolean Contains(C2DPoint pt) |
判断物体是否包含指定点 |
public boolean Contains(C2DLineBase Line) |
判断物体是否包含指定线 |
public boolean Contains(C2DPolyBase Polygon) |
判断物体是否包含指定物体 |
public void GetOverlaps ( C2DHoledPolyBase Other, ArrayList <C2DHoledPolyBase> HoledPolys, CGrid grid) |
获取物体与指定物体的重叠部分,HoledPolys为存储重叠部分的列表,grid为CGrid对象 |
public void GetNonOverlaps ( C2DHoledPolyBase Other, ArrayList <C2DHoledPolyBase> HoledPolys, CGrid grid) |
获取物体与指定物体的未重叠部分,HoledPolys为存储未重叠部分的列表,grid为CGrid对象 |
public void GetUnion(C2DHoledPolyBase Other, ArrayList <C2DHoledPolyBase> HoledPolys, CGrid grid) |
获取物体与指定物体的合并的部分,HoledPolys为存储合并部分的列表,grid为CGrid对象 |
public boolean Overlaps(C2DPolyBase Other) |
判断物体与指定物体是否重叠 |
public boolean Crosses(C2DLineBase Line) |
判断直线是否穿过物体 |
public boolean Crosses(C2DPolyBase Other) |
判断物体是否穿过物体 |
2)有孔多边形类C2DHoledPolygon:
C2DHoledPolygon是使用较多的类,是有孔多边形基础类C2DHoledPolyBase的子类,构造器:
构造器 |
含义 |
public C2DHoledPolygon() |
创建C2DHoledPolygon类对象 |
public C2DHoledPolygon ( C2DHoledPolygon Other) |
创建C2DHoledPolygon对象,Other为另一个C2DHoledPolygon对象 |
public C2DHoledPolygon ( C2DHoledPolyBase Other) |
创建C2DHoledPolygon对象,Other为C2DHoledPolyBase对象 |
public C2DHoledPolygon ( C2DPolyBase Other) |
创建C2DHoledPolygon对象,Other为C2DPolyBase对象 |
public C2DHoledPolygon ( C2DPolyBase Other) |
创建C2DHoledPolygon对象,Other为C2DPolygon对象 |
C2DHoledPolygon常用方法包括:
方法 |
含义 |
|
public void Set(C2DHoledPolygon Other) |
设置当前对象为指定对象 |
|
public void RotateToRight(double dAng) |
绕中心点逆时针旋转指定的角度 |
|
public void Grow(double dFactor) |
以中心点使物体大小变为原来的dFactor倍 |
|
public C2DPoint GetCentroid() |
获取有孔多边形的重心 |
|
public double GetArea() |
获取有孔多边形的面积 |
|
public void SetHole(int i, C2DPolygon Poly) |
在Holes列表的指定索引处插入或替换多边形对象,i指定索引值 |
|
public void AddHole(C2DPolygon Poly) |
将指定的多边形对象添加到Holes列表中 |