忍者ブログ
MASTER →  ADMIN / NEW ENTRY / COMMENT
現代魔法(nearly equal 情報技術)を勉強中な人のメモ(チラシの裏)
/ 2024/05/03 (Fri) / 編集
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

/ 2009/09/23 (Wed) / 編集
忍者ブログの欠点として、タグ機能がないってのがあると思う。
そう、情報の整理が非常にやりにくい!とくにプログラムのサンプルコードなんかはいろんなライブラリを利用したりしているので、タグ機能で分類できると非常に便利だと思うんだ俺は。。。
たとえば、OpenCVとOpenGLを使ったプログラムだとどのカテゴリに入れればいいのかさっぱりわからなくなったりね。

というわけで、あっとWikiでソースコードのメモ書き集ProMemo作ってみた。Wikiサイト作ったことなかったしね!

サイト内容はちょっと迷ったが、サンプルプログラム集に使用と思う。
OpenCVやOpenGLなどのライブラリを扱っているサイトは多々あるが、大事なとこしか掲載されてなかったり、windowsの関数使ってたり、VBプロジェクトになっていてマカーには使えなかったり、微妙に悲しかった、、、
それとあれ、たとえばバブルソートなどのアルゴリズム系のものなら他の言語での書き換えが欲しかったり、いろんなライブラリとの組み合わせ方(たとえばOpenCVとpenGLを組み合わせるとか)がわかるといいなとか、ほんのり欲しかった内容がる。
細かいとこでは「重要部分をコピペしたい」「でも場合によってはすべてまとめてダウンロードしたい」とか、「テスト環境が知りたい(てか俺の環境だとうごかないんだけど〜)」とかなるべく解消するページが欲しい。


というわけで作ってみた、みんながあんまり触らないライブラリ(Ontropediaとかね)や専門家が「言わなくてもわかるだろ?」と思ってるようなアルゴリズム(画像のケプストラムとかね)を掲載してゆく予定であります!

ProMemo

せっかくWikiなので協力してくれる人募集中。mixiユーザやOpenIDを持ってる人だと簡単に登録できるっぽい。もちろんそれ以外の人も大歓迎!
ふと思いついたとき、暇でヒマで仕方がないとき、気が向いたら追加してくれるとありがたいです。

拍手[0回]

PR
/ 2009/08/12 (Wed) / 編集
間違ってる気はするが、MATLAB関数のproborをScilabで実装してみるメモ

probor(確率的OR)というのはファジィ理論で使うっぽいあれらしい。
(注意;ご利用は計画的に!)

再起的に利用する部分を用意
 
function y = probor_s(x,w)
//  y = probor_s(a,b) 
//  x = [a b], then y = a + b - ab. If x has only one row, then y = x.
//
[nrows,ncols]=size(x);
y=zeros(nrows);
for k=1:nrows // For each pattern.
	y(k)=x(k)+w(k)-x(k)*w(k); 
end
endfunction

でもってこう
 
function y = probor(x,w)
//  y = probor(a,b) 
//  x = [a b], then y = a + b - ab. If x has only one row, then y = x.
//
if argn(2) == 1
	[nrows,ncols]=size(x);
	y=x;
	if ncols >= 2
		y=x(:,1);
		for k=2:ncols // For each pattern
			wtemp=x(:,k);
			y=probor_s(y,wtemp);
		end
	else
		y=x
	end
else
	y=probor_s(x,w);
end
endfunction
対応しているのは「wなしでxが行列」「wとxが縦ベクトル」のとき、「wなしでxが縦ベクトル」だと足す相手がいないのでそのままxが出てくる、「wありでxが行列」だとエラー処理していないのでどうなるかわからない。。。

やっつけにもほどがあるぜww

拍手[0回]

/ 2009/07/03 (Fri) / 編集
まず「shouldAutorotateToInterfaceOrientation:」でYesを返します。
//本体の回転を検出し、Viewを回転させる
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
	return YES;
}
そうすると、これがYESだと自動的にWindowを回転し、「willRotateToInterfaceOrientation」や「didRotateFromInterfaceOrientation」 が呼ばれるようになります。
//本体の回転に会わせて処理を変える関数
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
//本体の方向に応じてViewを変更
 switch (toInterfaceOrientation) {
   case UIInterfaceOrientationPortrait:
    NSLog(@"正位置");//ボタンが下
    [pub showCenterView];//Viewを呼び出す(下記参照)
     break;
   case UIInterfaceOrientationPortraitUpsideDown:
     NSLog(@"上下逆");
     [pub showFlipView];
     break;
   case UIInterfaceOrientationLandscapeLeft:
     NSLog(@"右回転");//NSLog(@"左が上");
     [pub showRightView];
     break;
   case UIInterfaceOrientationLandscapeRight:
     NSLog(@"左回転");//NSLog(@"右が上");
     [pub showLeftView];
     break;
   default:
     NSLog(@"Unkown");
     break;
   }
}
実際にViewを切り替える関数はこんな感じにしてみた
//本体を右に回転させたときに呼ばれる関数
-(void)showRightView{
//nowView : 現在一番上にあるView
//RootView : 親になるView
//rightViewController : 表示させたいViewのコントローラ
  NSLog(@"[Public:showRightView]");
  //現在一番上にあるViewを削除
  [nowView removeFromSuperview];
  //右回転させる
  [[UIApplication sharedApplication]   setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];
  //あたらしいViewをRootViewに追加(一番上に表示)
  [rootViewController.view addSubview:rightViewController.view];
  //実行
  [UIView commitAnimations];
  //現在のViewとして登録
  nowView = rightViewController.view;
}
この回転方向を表す長ったらしい引数はUIApplicationクラスのUIInterfaceOrientationコンスタントらしい
  1. UIInterfaceOrientationPortrait
  2. ホームボタンが下になるデフォルトの位置
  3. UIInterfaceOrientationPortraitUpsideDown
  4. 上下逆になる
  5. UIInterfaceOrientationLandscapeRight
  6. 本体を右に90度回転させたとき(ホームボタンが左)
  7. UIInterfaceOrientationLandscapeLeft
  8. 本体を左に90度回転させたとき(ホームボタンが右)

拍手[1回]

忍者ブログ [PR]