2010年08月04日

おひさしぶりです。

五月、六月は大阪に出張に行ってきました。まいにちまいにちC++のコード書いてました。ご飯が安くておいしかったのがいい思い出です。

昨日iPadを購入しました。元素図鑑を早速ダウンロードしたのですが、かなりいい感じです。そもそも読書用に買ったので、i文庫HDもダウンロードしました。ドグラマグラがプレインストールされているのが素敵です。

そろそろまた引越しをするので、どんどん持っている本を電子化しiPadに入れていく所存です。これでやっと重いPC、重い本を持ち運ぶ苦しみから解放される…。

posted by hougi at 14:20| Comment(1) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年05月24日

using namespace stdの位置

関数の引数に*string を使うところがあって、コンパイルエラーが出ていた。

using namespace stdの位置を使う前に移動させると、通るようになった。

ググって調べてみたのですがusing namespace std;は名前空間の汚染になるので使わない方が良いみたいですね。

posted by hougi at 16:55| Comment(9) | 仕事 | このブログの読者になる | 更新情報をチェックする

2010年05月20日

C++ stringクラスの使いかた サンプルコード

再びメモ

string str1("hello");
string str2("world");
string str3;

cin>>str3;
//自然な入力ができる。

string str;

str=str1+str3+str2;
//文字列の足し算、等号ができる。

cout<<str<<endl;
//出力ができる。

char c[80];
strcpy(c,str.c_str());
//charに直せる。

cout<<c;
ラベル:C++
posted by hougi at 14:12| Comment(1) | 仕事 | このブログの読者になる | 更新情報をチェックする

C++ ファイルバイナリ出力 サンプルコード memcpyの使用法。

C++においてfloatをバイナリ入出力することが必要になり、学習したのでメモ。

//////////////////////////////////////////////////////
float f;
f=-3.14/100;
cout<<f<<endl;

char fw[4];
memcpy(fw,&f,sizeof(float));
//char fw[]<float <f

ofstream ofs( "floatio.bin" ,ios::out|ios::binary) ;//output
ofs.write(fw,sizeof(float));
ofs.close();
//file<<char fw[]

char fr[4];
ifstream ifs( "floatio.bin" ,ios::in|ios::binary) ;
ifs.read(fr,sizeof(float));
//char fr[]<<file

float f2;
memcpy(&f2,fr,sizeof(float));
//float f2<<char fr[]

cout<<f2<<endl;

float f3;
memcpy(&f3,&f2,sizeof(float));
//float f3 << float f2;

cout<<f3;

///////////////////////////////////////////

出力結果
-0.0314
-0.0314
-0.0314
posted by hougi at 13:10| Comment(8) | 仕事 | このブログの読者になる | 更新情報をチェックする

2010年05月14日

この年になってもまだオイラー角に悩まされる。

ベクトルの変換、座標軸の変換、元から先、先から元の4種類あってどれがどれか、物理をずっとやってたのにまだ混乱します。
今回の仕事では角度がいつもと逆だったり、ヨーロールピッチだったり。
右手系から左手系へと移っていたら、公式通りいかないので、わからなくなったら原理に戻ってノートを書きました。

だいたい物理学、学部一、二回生向けです。

というわけでまとめノート。

e_iたちを元の基準ベクトル(面倒なので以下太字にしない)、これをe'_i→e''_i→e'''_iと回転することを考えます。

e'_j=R_1^{ji} e_i
e''_j=R_2^{ji} e'_i
e'''_j=R_3^{ji} e'_i

と変換されるとする。

すると
e'''_j=e_i (R_3 R_2 R_1) ^{ij}

両辺にv_jをかけてjで和をとって
v_j e'''_j=e_i (R_3 R_2 R_1) ^{ij} v_j

つまり、先でvのベクトルは前の座標では
(R_3 R_2 R_1)vであったことがわかります。












posted by hougi at 16:54| Comment(1) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年05月12日

バグ取り

バグの原因:

1.反復が必要なところを一回で抜けていた。(参考文献の誤読)

2.(誤) #define rho 3.141592653/180.0
 (正) #define (rho 3.141592653/180.0)

  a/rhoが元のままだと a/3.141592653/180.0 となるため。

3.(誤)1/(m+k)
(正)1/m+k

タイポ。

4. (誤) tan=cos/sin
(正) tan=sin/cos

阿呆。見つけるのに三時間はかかった。
posted by hougi at 15:32| Comment(1) | 仕事 | このブログの読者になる | 更新情報をチェックする

2010年05月10日

子午線孤長を緯度から求める

http://www.gsi.go.jp/common/000051178.pdf
にあるソースをAWKからC++に移植しました。jtは3で固定しています。

[訂正]5/12

タイポ修正。

pre環境でもinclude内がタグと認識されてしまうので、関数だけ載せることにしました。



//緯度(degree)から子午線孤長(km)を求める。
//



double Meridian_arc_length(double deg)
{

double a=6378.137 ;//地球半径[km]
double rf=298.257222101 ;//?
double n=0.5/(rf-0.5) ;//_?
double n15; n15=1.5*n ;
double an; an=a/(1.0+n);
double rho=3.14159265358979323846264/180.0 ;


double s[7]={0.0};//sin2l\phi 
int jt=3;
int jt2=6;
double ep=1.0 ;
double e[7];
double phi;
double phi2;
double c2;


for(int k=1; k<=jt; k++)
{
e[k]=n15/k-n ;
e[k+jt]=n15/(k+jt)-n;
ep*=e[k];
}




phi=deg*rho ;//radian

phi2=2.0*phi ;double dc;dc=2.0*cos(phi2) ;

double t[7];
t[1]=sin(phi2);s[1]=t[1];

for(int i=2; i<=jt2; i++) { s[i]=dc*s[i-1]-s[i-2] ; t[i]=s[i]/(double)i; } //

double sum=0.0 ;double cs1=ep;
//ここまで準備
for(int j=jt; j>=1; j--)
{
c2=1.0 ;double cs2=phi;
for(int l=1; l<=j; l++)
{
c2/=e[j-l+1] ;
cs2+=c2*t[2*l-1];
c2*=e[j+l] ;
cs2+=c2*t[2*l];
}

sum+=cs1*cs1*cs2 ;
cs1/=e[j];
}

double S=an*(sum-2.0*n*s[1]/sqrt(n*(n+dc)+1.0)+phi) ;
cout.precision(10);

return S;




}

ラベル:C++
posted by hougi at 16:22| Comment(1) | 仕事 | このブログの読者になる | 更新情報をチェックする

2010年05月07日

GWの過ごし方

GWはしばらく京都に戻って人の部屋でゆっくり過ごした後、自転車で東京に戻りました。

経路は京都→神戸⇒高松→徳島⇒東京です。
二重矢印の部分はフェリーを使いました。
どうして徳島まで行ったかというと、東京までいくもっとも京都から近いフェリー乗り場だからです。

神戸のネットカフェ、徳島のビジネスホテル、および最後のフェリーで寝ました。

ゴールデンウィーク中ということを忘れていて、予約をとっていなかったので徳島の宿をとるのが大変でした。

この前、自転車旅行をしたのは、八年ぐらい前でそのときは琵琶湖一周をしました。

今回と前回の最大の違いはなんといってもiPhoneの有無でした。iPhoneがあれば旅行は簡単です。充電に常に気を取られることになりますが。

posted by hougi at 20:08| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年04月27日

C++ファイル入出力

C++のファイル入出力が結構ややこしいのでサンプルコードを書きました。
あまり詳しくないので何か間違っているかもしれませんが、とりあえず動きます。
タグと認識されるので添付します。
posted by hougi at 17:36| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2010年04月23日

誕生日です。

今日は僕の誕生日です。三十になりました。

三十になる瞬間はジャンプしてました。

次にやる仕事はすごいです、
まるでドラえもんの世界の技術。
こんな技術が生きてる間に実現するとは思いませんでした。
応用性も極めて高く、インパクトも大きいです。

関わる部分はコアのプログラム開発です。
楽しみです。
posted by hougi at 18:34| Comment(0) | 日記 | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。