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

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

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

基底クラス:Boxクラス

物理シミュレーション環境構築用HTML5フレームワーク「physics.js」にて、ばねオブジェクトを生成するためのクラスです。ばねの形状を決定するために必要な基本的なパラメータとして、ばねの長さ(lengthプロパティ)、ばねの半径(radiusプロパティ)、管の半径(tubeプロパティ)と巻き数(windingNumberプロパティ)を指定することができます。ばねの長さとばねの半径は、管断面の中心座標を基準としていることに注意してください。

プロパティ

プロパティデータ型デフォルト説明
radius<float>1.0ばねの半径。
tube<float>0.2管の半径
length<float>5ばねの長さ。自然長
windingNumber<int>10 ばねの巻き数。
radialSegments<int>10外周の分割数。
tubularSegments<int>10 管周の分割数

メソッド

メソッド名引数戻値説明
getSpringGeometry (
radius,
tube,
length,
windingNumber,
radialSegments,
tubularSegments
)

<float>
<float>
<float>
<int>
<int>
<int>
<Geometry>引数で指定したパラメータに基づいたばねオブジェクトの形状オブジェクト(three.jsのGeometryクラス)を生成して返すメソッド。PhysObjectクラスのgetGeometryメソッド内で呼び出される。引数の意味は上記プロパティと同じ。
updateSpringGeometry (
radius,
tube,
length,
windingNumber,
radialSegments,
tubularSegments
)

<float>
<float>
<float>
<int>
<int>
<int>
なしばねオブジェクトの形状を引数で指定したパラメータに基づいて再計算を行い、3次元グラフィックスの更新を行う。引数の意味は上記プロパティと同じ。
setSpringGeometry (
geometry,
radius,
tube,
length,
windingNumber,
radialSegments,
tubularSegments
)

<Geometry>
<float>
<float>
<float>
<int>
<int>
<int>
なし引数で指定したパラメータに基づくばねオブジェクトの頂点座標や法線ベクトルの計算を行い、3次元グラフィックスの形状オブジェクトに格納するメソッド。
setSpringBottomToTop ( bottom,
top )
<Vector3>
<Vector3>
なし引数で指定したばねの下端(bottom)と上端(top)の位置ベクトルをもとに、ばねの形状の再計算と姿勢を指定するメソッド。本メソッド内部でsetSpringGeometryメソッドが実行される。

3次元グラフィックス

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

コンストラクタの実行例

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

	radius: 2,  //ばねの半径
	tube: 0.2,  //管の半径
	length: 5, //ばねの長さ
	windingNumber: 6, //巻き数
	radialSegments: 20, //外周の分割数
	tubularSegments:10,  //管の分割数

	//材質オブジェクト関連パラメータ
	material : {
		type : "Normal",
		castShadow : true,    //影の描画
		receiveShadow : true, //影の描画
		shading :"Smooth",
	},
	boundingBox : {
		visible : true,     //バウンディングボックスの可視化
	},
})

メモ

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


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

関連記事

仮想物理実験室







▲このページのトップ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との接続に失敗しました