HOME > natural science Laboratory > physics.js

physics.jsの使い方4:
様々な3次元オブジェクトの生成

文責:遠藤 理平 (2015年1月26日) カテゴリ:physics.js(22)

文責:遠藤理平
公開日:2015年01月26日
最終更新日:2015年01月26日

4-1. 様々な3次元オブジェクト(リビジョン1)

ここまで、仮想物理実験室に登場する3次元オブジェクトは軸オブジェクトだけでした。 本項では、リビジョン1で登場する全部で12種類の3次元オブジェクトを紹介します。

床オブジェクト 軸オブジェクト ポリゴンオブジェクト ポリゴンオブジェクト(外部データ)
球オブジェクト 平面オブジェクト 立方体オブジェクト 円オブジェクト
円柱オブジェクト 点オブジェクト ばねオブジェクト 線オブジェクト

4-2. 3次元オブジェクトの種類と対応クラス

仮想物理実験室に登場する3次元オブジェクトは、すべてPhysObjectクラスを基底クラスとしたそれぞれ対応するクラスのコンストラクタで生成することができます。 次の表はリビジョン1で生成することのできる3次元オブジェクトの一覧が次のとおりです。なお、プロパティの与え方によって形状を変更することもできます。

床オブジェクト 床オブジェクト Floorクラス
var floor = new PHYSICS.Floor({ (省略) })
軸オブジェクト 軸オブジェクト Axisクラス
var axis = new PHYSICS.Axis({ (省略) })
ポリゴンオブジェクト ポリゴンオブジェクト Polygonクラス
var polygon = new PHYSICS.Polygon({ (省略) })
ポリゴンオブジェクト ポリゴンオブジェクト Polygonクラス
var polygon = new PHYSICS.Polygon({ 
	(省略)
	loadJSONFilePath : "../data/Lucy100k_slim.js"
 })
球オブジェクト 球オブジェクト Sphereクラス
var axis = new PHYSICS.Sphere({ (省略) })
平面オブジェクト 平面オブジェクト Planeクラス
var plane = new PHYSICS.Plane({ (省略) })
立方体オブジェクト 立方体オブジェクト Cubeクラス
var cube = new PHYSICS.Cube({ (省略) })
円オブジェクト 円オブジェクト Circleクラス
var circle = new PHYSICS.Circle({ (省略) })
円柱オブジェクト 円柱オブジェクト Cylinder
var cylinder = new PHYSICS.Cylinder({ (省略) })
点オブジェクト 点オブジェクト Pointクラス
var point = new PHYSICS.Point({ (省略) })
ばねオブジェクト ばねオブジェクト Springクラス
var spring = new PHYSICS.Spring({ (省略) })
線オブジェクト 線オブジェクト Lineクラス
var line = new PHYSICS.Line({ (省略) })

4-3. 3次元オブジェクトの生成方法

前項までで取り扱った軸オブジェクトと同様、 該当クラスのコンストラクタを用いて3次元オブジェクトを生成した後に、 仮想物理実験室オブジェクトのobjectsプロパティ(配列)に格納します。 コンストラクタの引数に与えるパラメータには、生成する3次元オブジェクト固有のものも存在します。 詳しくは、今後順番に解説していきます。

////////////////////////////////////////////////////////////////////
// windowイベントの定義
////////////////////////////////////////////////////////////////////
window.addEventListener("load", function () {

	//仮想物理実験室オブジェクトの生成
	PHYSICS.physLab = new PHYSICS.PhysLab({
		(省略)
	});

	////////////////////////////////////////////////////////////////////
	//3次元オブジェクトの準備
	////////////////////////////////////////////////////////////////////
	//軸オブジェクト
	PHYSICS.physLab.objects.push( 
		new PHYSICS.Axis({(省略)})
	);
	//床オブジェクト
	PHYSICS.physLab.objects.push( 
		new PHYSICS.Floor({ (省略) })
	);
	//ポリゴンオブジェクト
	PHYSICS.physLab.objects.push( 
		new PHYSICS.Polygon({ (省略) })
	);
	//球オブジェクト
	PHYSICS.physLab.objects.push( 
		new PHYSICS.Sphere({ (省略) })
	);
	//平面オブジェクト
	PHYSICS.physLab.objects.push( 
		new PHYSICS.Plane({ (省略) })
	);
	//立方体オブジェクト
	PHYSICS.physLab.objects.push( 
		new PHYSICS.Cube({ (省略) })
	);
	//円オブジェクト
	PHYSICS.physLab.objects.push( 
		new PHYSICS.Circle({ (省略) })
	);
	//円柱オブジェクト
	PHYSICS.physLab.objects.push( 
		new PHYSICS.Cylinder({ (省略) })
	);
	//点オブジェクト
	PHYSICS.physLab.objects.push( 
		new PHYSICS.Point({ (省略) })
	);
	//ばねオブジェクト
	PHYSICS.physLab.objects.push( 
		new PHYSICS.Spring({ (省略) })
	);
	//線オブジェクト
	PHYSICS.physLab.objects.push( 
		new PHYSICS.Line({ (省略) })
	);

	//仮想物理実験室のスタートメソッドの実行
	PHYSICS.physLab.startLab();
});

関連ページ

「physics.jsの使い方」目次
「physics.js」関連ページのアーカイブ



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

関連記事

physics.js







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




Warning: mysqli_connect(): (28000/1045): Access denied for user 'xsvx1015071_ri'@'sv102.xserver.jp' (using password: YES) in /home/xsvx1015071/include/natural-science/include_counter-d.php on line 8
MySQL DBとの接続に失敗しました