2012年01月07日

HSPComplexのサンプルプログラムみたいなもの

HSPで複素数を扱うプラグインを作ったので、せっかくなのでサンプルプログラムみたいなものを書いてみました。実行すると、正弦関数の「グラフ」が現れます……とは言っても、誰もが知るサインカーブではなく、複素数が色で現れた虹色の画像になります。
引数が複素数平面上に、返り値が色で表されたグラフを描画します。引数は実軸・虚軸とも±5.00の範囲で0.01刻みで描画されます。
返り値は絶対値を明るさ、偏角を色相に当てています。絶対値は0が黒で、無限大に近づくに連れて白くなります。偏角は0(正の整数)が赤で、π(負の整数)が水色、π/2(虚部プラスの純虚数)が黄緑色、3π/2(虚部マイナスの純虚数)が紫色です。
100万回以上のループなので描画には多少時間がかかりますのでご注意ください。
あと、ソースを見ればわかりますがそれなりの解像度がないと表示できません。私の環境は1920×1080なので縦がギリギリです。

#include "hspcmplx.as"
#include "hspdef.as"
Gamma=0.6 ;ガンマ調整
screen 0,1001,1001 ;画面を初期化する
redraw 0 ;途中の描画は省略する
for Im,500,-500,-1 ;虚軸ループ
for Re,-500,500,1 ;実軸ループ
ans=sincx(complex(double(Re)/100.0, double(Im)/100.0)) ;関数(sincxを他の関数にかえてみてください)
H=int(argcx(ans)*96.0/M_PI) ;偏角を色相に直す
while H<0: H+=192: wend
while H>=192: H-=192: wend
T=atancx(powcx(complex(abscx(ans),0),complex(Gamma,0))) ;arctanで変換
S=int(abscx(sincx(T*complex(2.0,0)))*255.0) ;絶対値を彩度に変換
V=int(abscx(T)*1020.0/M_PI) ;絶対値を明度に変換
if V>255: V=255
hsvcolor H,S,V ;色を指定
pset Re+500,500-Im ;点を打つ
next
next
redraw 1
stop


実行結果
正弦のグラフ(複素数) on Twitpic

実は、これを作っている間にプラグイン本体にバグを発見してしまい、急遽アップデートする羽目になってしまったりしています。(Wikipediaを読みなおしたり、Pythonで検算したり……)
posted by MihailJP at 11:35| Comment(0) | Hot Soup Processor | このブログの読者になる | 更新情報をチェックする

2011年03月26日

EsteLime2 の拡張版

アリアンロッドRPGのオンラインセッションに使用するツールにEsteLime2というツールがあります。これはキャラクターのHPやMP、回数制限のあるスキルの使用回数の管理などに使う、LimeChat2用のスクリプトです。
しかし、スキルガイドに対応していなかったりといった様々な不便がありました。
そこで、いくつかのコマンドや機能を追加したのが「ミハイル版」です。

基本的な使い方はEsteLime2のオリジナルの配布ページを参照してください。

追加パラメータ

アコライト
fdフェイス:ダグデモア
メイジ
rmリゼントメント
サムライ
dfディフレクション
rfリフレクション
rgレイジ
サモナー
qrクウェリィ
ダンサー
dmダンスマカブル
ニンジャ
shs又はssシャドウスナップ
モンク
esエナジースクイーズ
trbトリプルブロウ
レンジャー
qaクイックアクション
drh又はdrダイレクトヒット
ウォーロード
gbグレートバースト
fusフルスイング
otオンスロート
ウィザード
mmマスターマジック
ソーサラー
afエイミングフォージ
faファインアート
stsストームソーサリィ
エクスプローラー
susサポートストライク
flkフリッカースラッシュ
スカウト
daデュアルアロー
flsフラッシュショット
hosホロウショット
llラストラック
テイマー
mtマスターテイマー
thトリプルヘッド
ドラグーン
dsドラゴンソウル
ハイランダー
his又はhsハイスピード
ukユニット:キーン
ufユニット:フォース
igインテリジェンス
メンター
baブレイクアトリビュート
シャーマン
fcファストチャネル
ヒーラー
money所持金
フォーキャスター
dcaディスカバードアタック
dcgディスカバードガード
dcmディスカバードマジック
pcパーペチュアルチェック
prプロフィラキシス
プリーチャー
fgフォーチュンガード
mbマジックブレス
カンナギ
cgaコールゴッド:アマテル
cgiコールゴッド:イザナミ
cgtコールゴッド:ツキヨミ
sdセイクリッドダンス
hbホーリーボディ
バートル
wsウィンドセンス
wuウェイクアップ
jaジャミングアロー
sskセイバースキル
trsトライショット
prpプレパレイション
一般
coキャッチアウト
skgスタイル:クウガ
shgスタイル:ホウゲン
smsスタイル:ムソウ
その他
com備考欄
備考欄は毎回上書きされます。

ダイスリピート機能

ダイスロールの直後に、:回数というように指定すると、同じダイスロールを指定回数だけ繰り返します。
また、bisなどのキーワードを使うこともできます。キーワードを使う場合は、: は不要です。
ラテン語数詞ギリシア語数詞英語数詞機能
bistwice2回
tertristhrice3回
quatertetrakis4回
quinquiespentakis5回
sexieshexakis6回
septiesheptakis7回
octiesoctakis又はoktakis8回
noviesenneakis又はnonakis9回
deciesdekakis10回


ダウンロード

第8版 estemiha.zip

ライセンス

GPL
posted by MihailJP at 23:17| Comment(0) | JavaScript | このブログの読者になる | 更新情報をチェックする

2010年04月20日

ダブルクロス3rd用補助ツール

(今のところ内輪向けの説明だけ)

ダイスの振り方

行為判定の場合、以下の書式で行います。
判定値R+修正@クリティカル値
判定値DX+修正@クリティカル値
「R」や「DX」は、大文字と小文字を区別しません。
クリティカルがあれば勝手に振り足してくれます。
クリティカル値を省略した場合は10とみなされます。
判定値を省略した場合は1とみなされます。

行為判定以外のダイスは次のように行います。
個数d面数+修正
個数D面数+修正
「D」が大文字の場合、簡略表示(合計値だけ)されます。小文字の場合、詳細表示(それぞれの出目も)されます。
個数を省略した場合は1個になります。
面数を省略した場合は6面になるので注意してください。

データ管理機能の使い方

まずは次のコマンドで初期設定をしてください。
#set name=PC名 pl=PL名 maxhp=HP inv=侵蝕率 def=装甲値
あとは以下のコマンドで操作できます。

コマンドについて

#inv=数値
#inv+=数値
#inv-=数値
侵蝕率を設定または増減します。

#hp=数値
#hp+=数値
#hp-=数値
HPを設定または増減します。

#def=数値
#def+=数値
#def-=数値
装甲値を設定または増減します。

#dam 数値
#dam 数値 nodef
#dam 数値 p=ガード値
#dam 数値 p=ガード値 nodef
ダメージを適用します。
装甲値無視のダメージを受けた場合は、nodefを付けます(ndでも認識します)。
ガードを選択していた場合、p=ガード値 の形でガード値を入力します。

#mode=orig
Dロイス「起源種」用モードに設定します。oorでも認識します。

#com=備考
備考が書けます。

#show
自分PCのステータスを表示します。

#showall
すべてのPCのステータスを表示します。

#reset
自分のステータスを消去します。

#init
#resetall
このコマンドを実行すると本当にリセットしていいか確認が出ますので、
時間内にこのコマンドをもう一度実行することですべてのステータスを消去します。

経験点算出の仕方

セッション終了後、プレイヤーは各自次のコマンドを実行してください。
#set aux=最終侵蝕率とSロイスによる経験点
プレイヤー全員が設定を完了したあと、GMは次のコマンドを実行します。
#report 最終侵蝕率とSロイス以外の経験点
タグ:IRC limechat
posted by MihailJP at 20:47| Comment(0) | JavaScript | このブログの読者になる | 更新情報をチェックする