主な変更点は以下の通り
・グリッドの追加(5cm,45cm,2inch,1.5feet)
・廊下,玄関フロアの追加
・簡易なSVGファイルへの出力の追加(Pro版のみ)
・編集操作の改良
以前からユーザーからの要望で上がっていた5cm、45cm単位のグリッド設定を追加しました
あとパーツ(廊下、玄関フロア)の追加、ほかにもまだ追加したいものはあるのですがとりあえずこれ
それとPro版だけですがSVGファイルへの簡易出力(床と壁とドアと窓)の追加 あとは点編集時の操作感を少し改良しました
public class Ball { final public static int G = 9800; //重力加速度(mm/ss) final public static float u = 0.075f; //摩擦係数 public Plot position = new Plot(); //位置 public int speed; //並進速度(mm/s) public double angle; //進行方向(Radian) //移動処理(interval:経過時間(ms)) public void move(long interval) { //摩擦による減速処理 speed -= (u * G * interval) / 1000; //速度をXY成分に分割 int xSpeed = (int)(speed * Math.cos(angle)); int ySpeed = (int)(speed * Math.sin(angle)); double xa = getXTilt(prev.x, prev.y); //X方向の傾斜角取得 double ya = getYTilt(prev.x, prev.y); //Y方向の傾斜角取得 xSpeed -= (G * Math.sin(xa) * interval) / 1000; //X方向に働く重力による加速 ySpeed -= (G * Math.sin(ya) * interval) / 1000; //Y方向に働く重力による加速 angle = getAngle(0f, 0f, xSpeed, ySpeed); //重力により曲がった進行方向を取得 //XYの速度から位置を更新 position.x += (xSpeed * interval) / 1000; position.y += (ySpeed * interval) / 1000; } }こんな感じでボールが転がる処理は完成
public class Ball { final public static int G = 9800; //重力加速度(mm/ss) final public static float u = 0.075f; //摩擦係数 public Plot position = new Plot(); //位置 public int speed; //並進速度(mm/s) public double angle; //進行方向(Radian) //移動処理(interval:経過時間(ms) public void move(long interval) { //摩擦による減速処理 speed -= (u * G * interval) / 1000; //速度をXY成分に分割 int xSpeed = (int)(speed * Math.cos(angle)); int ySpeed = (int)(speed * Math.sin(angle)); //XYの速度から位置を更新 position.x += (xSpeed * interval) / 1000; position.y += (ySpeed * interval) / 1000; } }
種別 | メーカー | パーツ |
---|---|---|
CPU | Intel | Core i5 4690 |
メモリ | ADATA | DDR3 4G*2 |
MB | ASUS | H97-PRO |
SSD | Crucial | BX100 256GB |
HDD | WD | WD20EZRX 2TB |
電源 | 玄人志向 | SS600W/85 |
OS | OS | Window7 64bit |