商域无疆 (http://blog.csdn.net/omni360/)
本文遵循“署名-非商业用途-保持一致”创作公用协议
转载请保留此句:商域无疆 - 本博客专注于 敏捷开发及移动和物联设备研究:数据可视化、GOLANG、Html5、WEBGL、THREE.JS,否则,出自本博客的文章拒绝转载或再转载,谢谢合作。
以下代码是THREE.JS 源码文件中Math/Vector2.js文件的注释.
更多更新在 : https://github.com/omni360/three.js.sourcecode/blob/master/Three.js
// File:src/math/Vector2.js
/**
* @author mrdoob / http://mrdoob.com/
* @author philogb / http://blog.thejit.org/
* @author egraether / http://egraether.com/
* @author zz85 / http://www.lab4games.net/zz85/blog
*/
/*
///Vector2对象的构造函数.用来创建一个二维向量的对象.Vector2对象的功能函数采用
///定义构造的函数原型对象来实现.
///
/// 用法: var p2d = new Vector2(5,3)
/// 创建一个x坐标为5,y坐标为3的向量.
/// NOTE: 参数(x,y)坐标为可选参数,如果不指定参数(x,y),将创建一个坐标为(0,0)的向量.
*/
///<summary>Vector2</summary>
///<param name ="x" type="number">x坐标</param>
///<param name ="y" type="number">y坐标</param>
THREE.Vector2 = function ( x, y ) {
this.x = x || 0;
this.y = y || 0;
};
/****************************************
****下面是Vector2对象提供的功能函数.
****************************************/
THREE.Vector2.prototype = {
constructor: THREE.Vector2,
/*
///set方法用来从新设置二维向量的x,y坐标值.并返回新的坐标值的二维向量.
*/
///<summary>set</summary>
///<param name ="x" type="number">x坐标</param>
///<param name ="y" type="number">y坐标</param>
///<returns type="Vector2">返回新坐标值的二维向量</returns>
set: function ( x, y ) {
this.x = x;
this.y = y;
return this; //返回新坐标值的二维向量
},
/*
///setX方法用来从新设置二维向量的x坐标值.并返回新的坐标值的二维向量.
*/
///<summary>setX</summary>
///<param name ="x" type="number">x坐标</param>
///<returns type="Vector2">返回新坐标值的二维向量</returns>
setX: function ( x ) {
this.x = x;
return this; //返回新坐标值的二维向量
},
/*
///setY方法用来从新设置二维向量的x坐标值.并返回新的坐标值的二维向量.
*/
///<summary>setY</summary>
///<param name ="y" type="number">y坐标</param>
///<returns type="Vector2">返回新坐标值的二维向量</returns>
setY: function ( y ) {
this.y = y;
return this; //返回新坐标值的二维向量
},
/*
///setComponent方法用来从新设置二维向量的(x,y)坐标值.并返回新的坐标值的二维向量.
///参数index取值为0 或者 1,取值为0,参数value设置x的坐标值,取值为1,参数value设置y的坐标.
*/
///<summary>setComponent</summary>
///<param name ="index" type="number">0或1</param>
///<param name ="value" type="number">x 或 y坐标</param>
setComponent: function ( index, value ) {
switch ( index ) {
case 0: this.x = value; break;
case 1: this.y = value; break;
default: throw new Error( 'index is out of range: ' + index );
}
},
/*
///getComponent方法用获得二维向量的(x,y)坐标值.
///参数index取值为0 或