HOME > natural science Laboratory > コンピュータ・シミュレーション講座 > 仮想物理実験室

「physics.js」による仮想物理実験室
Surfaceクラス(曲面オブジェクト)

文責:遠藤 理平 (2017年3月27日) カテゴリ:仮想物理実験室(277)

基底クラス: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次元グラフィックス

20170327-1.png
実際の実行結果はこちらでご覧いただけます

コンストラクタの実行例

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,   //透過処理
	}
})

メモ

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


▲このページのトップNPO法人 natural science トップ

関連記事

仮想物理実験室







▲このページのトップNPO法人 natural science トップ