Surfaceクラス(曲面オブジェクト)

基底クラス:Poligonクラス

物理シミュレーション環境構築用HTML5フレームワーク「physics.js」にて、xy平面上の格子点で与えられたz値をもつ格子状の曲面オブジェクトを生成するためのクラスです。なお、曲面はポリゴンで構成されているので、Poligonクラスの派生クラスとして定義します。

プロパティ

n<int>100一辺あたりの格子数。
width<float>0.5格子一辺の長さ。
specifyZ<object> {
enabled : false,
function : null,
}
xy平面上の各格子点に対するz値を指定する関数。
specifyColor<object> {
enabled : false,
function :null,
}
xy平面上の各格子点に対する頂点色を指定する関数。
transparentMode<object> {
enabled : false,
canvasWidth : 256,
canvasHeight : 256,
}
透明モードの設定(テクスチャマッピングを利用)。

3次元グラフィックス(画像ダウンロード:

コンストラクタの実行例

var surface = new PHYSICS.Surface({
	draggable: false,           //マウスドラックの有無
	allowDrag : true,          //マウスドラックの可否
	position: {x: 0, y: 0, z: 4},     //位置ベクトル
	collision: false,           //衝突判定の有無
	axis: {x:0, y:0, z:1},  //姿勢軸ベクトル
	angle : 0,

	n :100,       //一辺あたりの格子数
	width : 0.2,  //格子の一辺の長さ

	specifyZ : {  //z値の指定
		enabled : true,
		function : function( x , y ){
			return 10*Math.exp( - ( x * x + y * y ) / 10 );
		}
	},
	specifyColor : {  //color値の指定
		enabled : true,
		function : function( x , y, z ){
			var w = Math.exp( - ( x * x + y * y ) / 10 );
			return { r: w, g: w, b: w };
		}
	},
	resetVertices : true,     //頂点再設定の有無
	//材質オブジェクト関連パラメータ
	material : {
		type : "Phong",      //材質の種類
		color : 0xdae000,     //反射色
		side : "Double",         //描画面
	},
	//バウンディングボックス関連パラメータ
	boundingBox : {
		visible : false,       //バウンディングボックスの表示
		color : null,         //描画色
		opacity : 0.2,        //不透明度
		transparent : true,   //透過処理
	}
})

メモ

並進運動
回転運動 ×
衝突計算 △球オブジェクト
接触計算 △球オブジェクト