「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, //透過処理 } })
メモ
並進運動 | ◯ |
---|---|
回転運動 | × |
衝突計算 | △球オブジェクト |
接触計算 | △球オブジェクト |