「physics.js」による仮想物理実験室
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,   //透過処理
	}
})
メモ
| 並進運動 | ◯ | 
|---|---|
| 回転運動 | × | 
| 衝突計算 | △球オブジェクト | 
| 接触計算 | △球オブジェクト | 

 
  
 
 
					  						
					  
					  					   
					  						
					  
					  					   
					  						
					  
					  					   
					  						
					  
					  					   
					  						
					  
					  					   
					  						
					  
					  					   
					  						
					  
					  					   
					  						
					  
					  					   
					  						
					  
					  					  


 
  
  
  
 
  
  
   
  
  
   
  
  
   
  
  
   
  
  
   
  
  
   
  
  
  