HOME > natural science Laboratory > physics.js

Springクラス(ばねオブジェクト)/物理シミュレーション環境構築用HTML5フレームワーク「physics.js」

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

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

ばねオブジェクトの生成

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,     //バウンディングボックスの可視化
	},
})

ばねオブジェクトの3次元グラフィックス(画像ダウンロード:

プロパティ

プロパティデータ型デフォルト説明
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メソッドが実行される。


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