2021SC@SDUSC
总述
我们在上节讨论了quark-renderer在事件方面的一些代码函数,有通过对鼠标触控等一系列的操作需要涉及点击、移入、移出、滚轮滑动等操作,对于事件的封装,介绍了他们的一些操作的实现过程。
那么本次,我们介绍对于geometric包中的代码。
geometric是几何,该包中包含有两个js文件,这两个js文件主要介绍点和直线,他不是实际的点和直线,他由他存在的意义,下面我们分别来介绍这点和线。
几何意义上的点
在GeoPoint.js文件中,我们对于集合意义上的点进行整理概括,作者对于他的定义是这样说的,它不可见,没有大小,用来进行数学运算。作者说的这样的点不是实际意义的点,我们通过下面的代码分析来完成对几何意义上的点的解读。
在js中,该js文件的主要作用就是导出一个GeoPoint类,该类实现对于几何意义上的点的定义实现。
首先,我们看构造函数,接收x,y,作为点的坐标。
Load(o)函数
而后有一个静态的load函数,该函数的作用为新建一个GeoPoint实例对象,传入的参数为一个json对象那个,包含x,y,返回一个GeoPoint对象。
static load(o) {
return new GeoPoint(Number(o.x), Number(o.y));
}
loadArray(v)函数
下面来看loadArray函数,该函数也是一个静态的函数,传入的是一个Json对象,返回的是一个GeoPoint的对象数组。主要就是循环遍历v中的每一个值,然后调用load函数,进行构建newPoint。
static loadArray(v) {
let newPoints = [];