JavaScriptな物理計算エンジンmatter.jsで遊ぶ

そろそろちゃんとしたホームページがほしいなあと。

ホームページって言ったらあれだよなんか技術デモみたいなのが動くみたいな感じのやつだろうと思いまして。
派手にもしたいから物理演算とかだよなーでもそんなん作る気力も技術も無いだろうしーということで。

割と最近に出た物理演算matter.jsについて調べてます。javascriptで物理演算ができます。もちろんwebで動きます。
2000年前半のホームページとか作ってた身からするとリッチになったものだなだと・・・。

ただ、これまだまだ新しいのであまり情報が無い。
でも、形を落としたり動かしたり一般的なことはそんなに難しくないと思います。

matter.js githubのGetting-startedよりコードを拝借。
まずは動く最低限のコードを見ないと私は頭がこんがらがるので、
これがシンプルな最低限のコードです。表示するならもちろんこれにhtmlとmatter.js本体が必要です。
[javascript]
window.onload = function() {

// https://github.com/liabru/matter-js/wiki/Getting-started
// Matter.jsモジュールに別名を付ける
var Engine = Matter.Engine,
World = Matter.World,
Bodies = Matter.Bodies;

// Matter.js エンジン作成
var engine = Engine.create(document.body);

// 二つの箱(四角)と地面を作る
var boxA = Bodies.rectangle(400, 200, 80, 80);
var boxB = Bodies.rectangle(450, 50, 80, 80);
//isStatic:静的(完全固定)
var ground = Bodies.rectangle(400, 610, 810, 60, { isStatic: true });

// 二つの箱(四角)と地面を追加
World.add(engine.world, [boxA, boxB, ground]);

// Matter.js エンジン起動
Engine.run(engine);

}
[/javascript]

これを動かすとこんな感じ。上から箱が落ちてきます。
matter

Matter.Bodies.rectangleはそのまま長方形を作る関数です。引数はx,y,width,height,[options] といった感じ。
これをそのままMatter.Bodies.circleとかに変えると円になります。

matter2
他にも台形(trapezoid)とか多角形(polygon)とか用意されているので、これだけでもいろいろ遊べます。
画像を入れたりSVGを使うことも標準でできるらしいのだけれど、
その辺はAPI Documentsにて。

連番の画像をダウンロードするようなpythonスクリプト

案外、「ページ内の画像を全てダウンロード」「ログインが必要なページの画像ダウンロード」

な感じの解説はあるのですが、連番ダウンロードは案外ない。

このコードは
http://hoge.jp/1.jpg
http://hoge.jp/2.jpg
http://hoge.jp/3.jpg



みたいな感じの画像を連番で取得します。

自分用に作ったものなんで403なんかのerrorでbreakするというお粗末なコードになってますが。参考程度に。

pythonは3.xと2.xの情報がごっちゃになっててなかなか時間掛かった。shなんかで書いた方が早いだろうな・・・。
ちなみにpython2.x用です。3.xで動くかは知りません。

まあこの記事は、コードを綺麗にハイライトしてくれるWordpressプラグイン
Crayon Syntax Highlighterがちゃんと動作しているかのテストです。意味はないです。

[python]

!/usr/bin/python

coding:utf-8

from urllib2 import Request, urlopen, URLError,HTTPError
import os

baseurl =raw_input(‘ダウンロードするURL:’) #example:http://hoge.jp/
input_url = raw_input(‘画像形式:’) #pngとかjpgとか
number=1
folder=’./img/’
os.mkdir(folder) #フォルダ作成
while 1:
point=str(number)+’.’+input_url
url=baseurl+point
print ‘get:’+url
output = folder+os.path.basename(url)+’.’+input_url
try:
req = urlopen(url)
file = open(output, ‘wb’)
file.write(req.read())
file.close()
print ‘filesize:’+os.path.getsize(output)
except HTTPError,e:
print e.code
print ‘stop’
break
except URLError,e:
print e.code
print ‘stop’
break
else:
number=number+1
print(‘All complete – image:’+str(number-1))
[/python]

Windows 10 Technical Preview ISO が提供開始

win2

 

Windows 10 Technical Preview ISOが公開されました。

多分MicrosoftID持ってる人はみんなダウンロードできると思います。

ダウンロードしてDVDにでも焼けばインストールディスクが出来上がります。

x64版が4GB、x86版が3GB程度です。DVDに収まりますね。

日本語もあるのがうれしいです。

しかし、所謂Preview版なので、実機に入れるのはおすすめしません。仮想ソフトでも使ったほうがいいですね。

SanDisk USB3.0 Flash Drive Extremeを買いました

そろそろ手持ちのUSBメモリが限界になってきたので、買い替えということで。爆速が有名の
SanDisk(サンディスク) USB 3.0 Flash Drive Extreme USBメモリー 16GB SDCZ80-016G-G46を買ってきました。

価格はぴったり2000円です。

IMG_0382

 

"SanDisk USB3.0 Flash Drive Extremeを買いました"の続きを読む

Onedriveの使い道☁

Office365 Personalのアカウント1年分(Windowsタブ買ったときについてきた)が適用され、

Onedriveの使用容量が1TB使用可能となりました。(いずれは無制限となるらしいです)

OneDrive 1 TB のオンライン ストレージ サービス http://www.microsoft.com/ja-jp/office/home/onedrive/default.aspx

onedrive

 

"Onedriveの使い道☁"の続きを読む

試験運用中

ブログ立ち上げたのはいいですが、結構不安定な気がします。

500円の安鯖だからというのもありますが、わざわざpotproject.netにもサーバーを開いてるせいだと思います。そっちの方はno textとしか書いてないですが。

現在の構成としては、

potproject.net(node.js)

blog.potproject.net(apache-wordpress)

と2つ存在してます。

不安定で重いのはちょっとあれなので、いろいろプラグインを検討中。

ブログはじめました(3回目)

ということで、ブログというか単に書き留める自分のためのメモ帳です。

一番最初にブログを始めたのが大体2005年くらいでして、その後4,5年続けてて、2010年くらいにミニブログであるtwitterに浮気してブログは全く更新しなくなり、今に至る。

そして2015年。今年でちょうど10年になりますのでまた再開してみようとのこと。ブログ自体は3つ目。

今回はちゃんと鯖借りてやってます。進化したものだ。

不定期ですが書いていくと思います。多分。