主な変更点は以下の通り
・グリッドの追加(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 |