[更新情報]

▽Go to footer


GMT 関連記事は,「WindowsでGMT」に移動しました. 目次の中では,項目のみ,下段に集めて「Windows で GMT」にリンクを張ってあります.


目次
2012.06.30
2012.06.28
2012.06.24
2012.06.03
2012.05.27
2012.05.13
2012.05.07
2012.04.08
2012.02.05
2011.05.08
2011.05.05
2011.05.03
2011.04.29
2011.04.24
2011.04.24
2011.04.12
2011.03.27
2011.03.26
2011.03.20
2011.02.24
2011.02.24
2011.02.24
2011.02.22
2011.02.22
2011.02.22
2011.02.22
2010.04.02
2010.03.27
2010.03.17
2010.03.13
2010.03.02
2010.03.01
2010.02.28
2010.02.14
2008.12.20
GMT 関連(「Windows で GMT」に移動)
2011.04.24
2011.04.20
2011.04.17
2011.04.12
2011.04.12
2011.04.12
2011.04.12
2011.04.10
2011.04.10

パソコン関係の覚書き

[f90 prog] Fortran90 プログラム(6) (2012.06.30)

2次元定常飽和-不飽和浸透流解析プログラムを改良しました.浸透流のプログラムはサブルーチン数も応力解析に比べれば少ないので,三角形要素用と四角形要素用のプログラムを1つにまとめました.三角形要素と四角形要素の混合には対応していません.また解析結果を一目で確認できるよう,作図プログラムも整備してみました. 作図プログラムといっても,gnuplot 用のスクリプトを吐き出すもので,作図は gnuplot が行います.

(2012.07.03修正)水平断面の飽和浸透流解析も可能なようプログラムを修正.

ファイル名概要
2次元定常飽和-不飽和浸透流解析プログラムソース
節点番号最適化プログラムソース
メッシュ図・圧力分布図・流速ベクトル出力プログラムソース
圧力・流量出力プログラムソース(汎用性はない)
解析事例紹介


[f90 prog] Fortran90 プログラム(5) (2012.06.28)

これもこれまで欲しかったプログラムです.2次元定常飽和-不飽和浸透流解析用の節点番号最適化プログラムを Fortran90 で作りました. 三角形要素モデル版と四角形要素モデル版です.節点番号最適化を行わないメッシャーで作成した入力データに対し,効果があります.

このプログラムの主要サブルーチンは,こちら(http://www.archi.hiro.kindai.ac.jp/laboratory/SAL/dfujii/Report/fem/fem_5.pdf)に掲載されていたものを,Fortran90に書き換えました.この方法のほかにも,節点番号を原点から近い順に並び替える,あるいはx軸座標の小さい順に並べ替えるなどの方法でもそれなりの成果は得られます. データの入出力部分を書き換えることにより,色々なFEMプログラムで応用できます.

ファイル名概要
2次元定常飽和-不飽和浸透流解析用節点番号最適化プログラムソース(三角形要素)
2次元定常飽和-不飽和浸透流解析用節点番号最適化プログラムソース(四角形要素)


[f90 prog] Fortran90 プログラム(4) (2012.06.24)

これまで欲しかったけどなかなか作成できなかった,2次元定常飽和-不飽和浸透流解析プログラムを Fortran90 で作りました. 三角形要素モデル版と四角形要素モデル版です. 解析事例は,「[f90 prog] Fortran90 プログラム(6)」に移しました.

ファイル名概要
2次元定常飽和-不飽和浸透流解析プログラムソース(三角形要素)
2次元定常飽和-不飽和浸透流解析プログラムソース(四角形要素)


[f90 prog] Fortran90 プログラム(3) (2012.06.03)

この週末は,2次元非定常熱伝導解析プログラムを Fortran90 に直してみました.

ファイル名概要
2次元非定常熱伝導解析プログラムソース


[f90 prog] Fortran90 プログラム(2) (2012.05.27)

この週末は,3つ Fortran90 のプログラムを作ってみました. 作ったといっても,VB と C のコードから,文法をインターネットで調べながら変換していったものです.

サージング計算では,変数をgrovalにしているものが多いので,この部分はmoduleという機能を使ってみました. 結果としてうまく動くようです.

ファイル名概要
2次元応力解析no-tensionプログラムソース
軸対称応力解析no-tensionプログラムソース
サージング解析プログラムソース


[gcc tips] 円弧すべり計算プログラム (2012.05.13)

必要に迫られて,円弧すべり計算プログラムを作成しました.

円弧すべり計算プログラムと入力事例・出力(最小安全率円弧検索)

実行時には,下のように,入力ファイル(例:inp_62500.csv)と出力ファイル(例:out_62500.csv)を指定します.

gccSCAsearch inp_62500.csv out_62500.csv

入力ファイル(例:inp_62500.csv)は以下の構成のcsvファイルです.

18.0,62.5,0.0          材料の単位体積重量,粘着力,内部摩擦角
0.1,0.1,50.0,71.0      x軸計算ピッチ,円弧半径計算ピッチ,計算円弧最大半径,計算円弧最低標高
-5.0,7,76.0,14,1.0     円弧中心グリッド最小x座標,x方向グリッド数,グリッド最小y座標,y方向グリッド数,グリッド間隔
6                      地形入力座標数
-5.0,71.0              地形x座標,地形y座標
 0.0,71.0              
 2.5,76.0              (左から右の順に入力)
 3.5,76.0              (垂直壁があると計算できない)
 5.0,79.0              
17.0,79.0              
ファイル名概要
最小安全率検索実行用バッチファイル
円弧すべり計算プログラム(最小安全率円弧検索)
入力データ(1)
入力データ(2)
入力データ(3)
解析結果出力事例

円弧すべり計算プログラムと入力事例(個別安全率計算)

実行時には,下のように,入力ファイル(例:inp_one_20000_Y.csv)と画像出力epsファイル(例:fig_one_20000_Y.eps)を指定します.

gccSCAone inp_one_20000_Y.csv fig_one_20000_Y.eps

入力ファイル(例:inp_one_20000.csv)は以下の構成のcsvファイルです.

18.0,20.0,0.0            材料の単位体積重量,粘着力,内部摩擦角
0.1,-5.0,81.0,11.0,71.0  x軸計算ピッチ,円弧中心x座標,円弧中心y座標,円弧半径,計算円弧最低標高
6                        地形入力座標数
-5.0,71.0                地形x座標,地形y座標
 0.0,71.0               
 2.5,76.0               (左から右の順に入力)
 3.5,76.0               (垂直壁があると計算できない)
 5.0,79.0               
17.0,79.0               
ファイル名概要
個別円弧安全率計算実行用バッチファイル
円弧すべり計算プログラム(個別安全率計算)
入力データ(1)
入力データ(2)


[f90 prog] Fortran90 プログラム(1) (2012.05.07)

急に思い立って,昨日と今日で Fortran90 でプログラムを2つ作ってみました. 作ったといっても,VB と C のコードから,文法をインターネットで調べながら変換していったものです.

コーディングの参考にしたのは以下のサイトです.アップしたプログラムでは,Fortran入門に掲載されている,csvデータから余分な空白を除いて出力するサブルーチンを使用させていただいています.

コンパイラは,MinGW の gfortran です. 通常のコンパイルだと,計算スピードは C のほうが圧倒的に早いです.

コンパイルと実行は,以下のバッチファイルで行っています. 入力ファイルは fnameR.csv,出力ファイルは fnameW.csv に統一しています. このため,下の事例では,別途作った inp_elm_036.csv を fnameR.csv にコピーして f90_FEM4nod.exe を実行し,出力された fnameW.csv を out_elm_036.csv にコピーしています.

gfortran -o f90_FEM4nod.exe f90_FEM4nod.f90

copy inp_elm_036.csv fnameR.csv
f90_FEM4nod
copy fnameW.csv out_elm_036.csv
ファイル名概要
2次元弾性応力解析プログラムソース
平面骨組解析プログラムソース


[HTML tips] HTML で棒グラフを作成・表示 (2012.04.08)

HTML で棒グラフを作成・表示します. 棒グラフの作成・表示方法は,こちらのページ (http://allabout.co.jp/gm/gc/23817/2/)を参考にさせていただきました.

このサンプルの作成手順は以下のとおりです.

Yahooからコピーしたテキスト(2012040809am.txt)

2012年4月8日午前9時現在の状況です.

  index.html 	3663  	アクセス状況 
  link.html 	106  	アクセス状況 
  profile.html 	251  	アクセス状況 
  rireki.html 	384  	アクセス状況 
  subFONT.html 	434  	アクセス状況 
  subIMcol.html 	79  	アクセス状況 
  subIMcom.html 	572  	アクセス状況 
  subIMdraw.html 	354  	アクセス状況 
  subIMfont.html 	267  	アクセス状況 
  subPNGcolor.html 	3204  	アクセス状況 
  subTeX.html 	308  	アクセス状況 
  subgnuplot1-1.html 	1961  	アクセス状況 
  subgnuplot1-2.html 	674  	アクセス状況 
  subgnuplot2-1.html 	1382  	アクセス状況 
  subgnuplot2-2.html 	845  	アクセス状況 
  subvbbook.html 	300  	アクセス状況 
  subvbhatch.html 	203  	アクセス状況 
  subvbpro1.html 	3552  	アクセス状況 
  subvbpro2.html 	1474  	アクセス状況 
  subvbpro3.html 	1671  	アクセス状況 
  subvbpro4.html 	3043  	アクセス状況 
  subvbpro5.html 	3094  	アクセス状況 
  subvbpro6.html 	2104  	アクセス状況 
  subvbpro7.html 	1742  	アクセス状況 
  subvbpro8.html 	844  	アクセス状況 
  subvbsouko.html 	2143  	アクセス状況 
  subwebcolor.html 	222  	アクセス状況 
  subwebcolor140.html 	180  	アクセス状況 

テキストを整形するawkスクリプト(awk_tbl.awk)

{item[NR]=$1;num[NR]=$2}
END{
    nd=NR
    str=FILENAME
   switch(substr(str,5,2)){
       case "01": mo="January";break;
       case "02": mo="February";break;
       case "03": mo="March";break;
       case "04": mo="April";break;
       case "05": mo="May";break;
       case "06": mo="June";break;
       case "07": mo="July";break;
       case "08": mo="August";break;
       case "09": mo="September";break;
       case "10": mo="October";break;
       case "11": mo="November";break;
       case "12": mo="December";break;
    }

    printf "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n"
    printf "<html lang=\"ja\">\n"
    printf "<head>\n"
    printf "<link rel=\"stylesheet\" type=\"text/css\" href=\"csmain.css\">\n"
    printf "</head>\n"
    printf "<body>\n"

    printf "<table>\n"
    printf "<tr><th colspan=\"3\">%s. %s. %s. %s</th></tr>\n",substr(str,1,4),mo,substr(str,7,2),substr(str,9,4)
    for(i=1;i<=nd;i++){
        printf "<tr><td>%s</td><td>%d</td><td><img src=\"gif_bar.gif\" width=\"%d\" height=\"12\" alt=\"bar\"></td></tr>\n",item[i],num[i],num[i]/10
    }
    printf "</table>\n"

    printf "</body>\n"
    printf "</html>\n"
}

ImageMagickによる画像作成とawkによるテキスト整形用バッチファイル

convert -size 10x10  gradient:snow-green gif_bar.gif

gawk -f awk_tbl.awk 2012040809am.txt > test.html

ImageMagickのconvertによりグラフに用いる画像gif_bar.gifを作成.この画像は,横長棒グラフを作成する上で,上が雪色(snow)・下が緑(green)のグラデーション画像として作成・保存する.

awkの実行により,test.htmlを作成する.

結果表示

CSSは,このホームページで使用しているものとなっています.

2012. April. 08. 09am
index.html3663bar
link.html106bar
profile.html251bar
rireki.html384bar
subFONT.html434bar
subIMcol.html79bar
subIMcom.html572bar
subIMdraw.html354bar
subIMfont.html267bar
subPNGcolor.html3204bar
subTeX.html308bar
subgnuplot1-1.html1961bar
subgnuplot1-2.html674bar
subgnuplot2-1.html1382bar
subgnuplot2-2.html845bar
subvbbook.html300bar
subvbhatch.html203bar
subvbpro1.html3552bar
subvbpro2.html1474bar
subvbpro3.html1671bar
subvbpro4.html3043bar
subvbpro5.html3094bar
subvbpro6.html2104bar
subvbpro7.html1742bar
subvbpro8.html844bar
subvbsouko.html2143bar
subwebcolor.html222bar
subwebcolor140.html180bar


[gcc tips] 鉄筋コンクリート応力計算(円形断面・矩形断面) (2012.02.05)

鉄筋コンクリートの応力計算を行うCプログラムです. やはり手元に欲しいツールなので作っておきました.

円形充実鉄筋コンクリート断面

軸力,曲げ,せん断力を受ける円形充実鉄筋コンクリート断面の応力計算を行います.

Cプログラムのコンパイルと実行を行うバッチファイルの内容は以下の通りです.

gcc -o gccRC_circ.exe gccRC_circ.c
gccRC_circ dat_inp_RC_c.csv dat_out_RC_c.csv

入力データ並びは以下の書式です.

r, rs, As, n, N, M, S

r, rs, As, n, N, M, S = 断面半径,鉄筋重心半径,鉄筋断面積,弾性係数比,軸力,モーメント,せん断力

出力データ並びは以下の書式です.

r, rs, As, n, N, M, S, sig_c, sig_s', sig_c', sig_s, tau_c, alpha(deg.), yn

r, rs, As, n, N, M, S = 入力データに同じ.

sig_c, sig_s', sig_c', sig_s = 圧縮縁コンクリート応力,圧縮鉄筋応力,引張縁コンクリート応力,引張鉄筋応力

tau_c , alpha(deg.) , yn = コンクリートせん断応力,中立軸位置(角度),中立軸位置(圧縮縁からの距離)

なお,コンクリートせん断応力は単純化のため,作用せん断力を,圧縮縁から引張応力が最大の鉄筋まで断面積により除して求めています.

ファイル名概要
計算用Cプログラムソース
入力データファイル
出力データファイル

矩形充実鉄筋コンクリート断面

曲げ,せん断力を受ける矩形充実鉄筋コンクリート断面の応力計算を行います.

Cプログラムのコンパイルと実行を行うバッチファイルの内容は以下の通りです.

gcc -o gccRC_circ.exe gccRC_circ.c
gccRC_circ dat_inp_RC_c.csv dat_out_RC_c.csv

入力データ並びは以下の書式です.

icase,b,d,As,d',As',n,M,S

icase, b, d, As, d', As', n, M, S = ケース,断面幅,引張鉄筋有効高さ,引張鉄筋断面積,圧縮鉄筋有効高さ,圧縮鉄筋断面積,弾性係数比,モーメント,せん断力

icase = 0 は単鉄筋断面,icase = 1 は複鉄筋断面の計算です.

出力データ並びは以下の書式です.

icase, b, d, As, d', As', n, M, S, sig_c, sig_s', sig_c', sig_s, tau_c, x

icase, b, d, As, d', As', n, M, S = 入力データに同じ.

sig_c, sig_s', sig_c', sig_s = 圧縮縁コンクリート応力,圧縮鉄筋応力,引張縁コンクリート応力,引張鉄筋応力

tau_c, x = コンクリートせん断応力,中立軸位置(圧縮縁からの距離)

ファイル名概要
計算用Cプログラムソース
入力データファイル
出力データファイル


[gcc tips] 統計解析(5):LP3でのテスト (2011.05.08)

GMT で対数ピアソンIII型分布での推定値の図を描く事例です. 解析の入力データは,統計解析(1)(2)と同じ,前橋市の過去 114 年間の年最大日雨量です.

ここでは,対数ピアソンIII型分布において,確率年雨量(クオンタイル)を算出するのに,ガンマ分布の%点からの推定とWilson-Hilferty変換による推定での差異を検討しました.bootstrap法により1000個のbootstrap反復値を計算し,これより14確率年のクオンタイルを計算する試行を5回行った結果を図化しました. 横軸は対数ピアソンIII型分布における形状母数 ( b ) ,縦軸はWilson-Hilferty変換による推定値とガンマ分布%点からの推定値の比をとっています.この事例からすれば b の値が1000を超えると両者の違いは目立たなくなるようです.

ファイル名概要
解析用Cプログラムソース
作図用バッチファイル
出力画像

また練習として対数ピアソンIII型分布での棄却検定を行うプログラムを作成してみました.入力データの最大値を棄却すべきか採用すべきかの検定です. 母数推定を行った後,形状母数が10000未満かそれ以上かで,検定対象値の超過確率計算方法をガンマ分布によるものとWilson-Hilferty変換によるものに分けています. この場合,%点が求まりこれから超過確率(上側確率:しかしプログラム上は非超過確率を計算)を求める必要があります.ガンマ分布の場合は%点を求めるプログラムを改良して非超過確率を求め,Wilson-Hilferty変換を用いる場合標準正規分布に変換するのでShentonの連分数展開式で上側確率を求めています.

ファイル名概要
解析用Cプログラムソース
出力結果ファイル


[gcc tips] 統計解析(4):bootstrap法 (2011.05.05)

GMT で統計解析結果を描く事例です. 解析の入力データは,統計解析(1)と同じ,前橋市の過去 114 年間の年最大日雨量です. 全原データによる推定値と,bootstrap 法による推定値をプロットしてみました. グラフを見比べると jackknife 法と同様に2変数の確率分布関数の場合と比較して3変数のものは値が大きくバラツキも大きくなる傾向にあるようです.図中の95%信頼区間は,もっとも単純なパーセンタイル法(推定値を小さい順に並べて下から2.5%の点と上から2.5%の点を限界とする)にて求めています.

対数ピアソンIII型分布(LP3)において,形状母数が大きくなるとガンマ分布%点計算が収束しなくなるので,この場合にはWilson-Hilferty(ウィルソン・ヒルファティ)変換という近似式を用いて確率年雨量を算出しています.近似式を使う境界の形状母数は 10,000 としています. こうすることで,対数ピアソンIII型の計算時間は短縮され,収束計算を繰り返さざるを得ない SQRT-ET がもっとも計算時間を食っています.

統計解析(1)から(4)で使用しているプログラム作成のための数式は,下の文書に整理してあります.

プログラム作成のための数式:pdf文書

描画用データ作成のための C 実行ファイルへの命令は以下のようなものです.argv[1]に分布を指定する整数,argv[2]に入力ファイル,argv[3]に数値出力ファイル,argv[4]にヒストグラム用の数値出力ファイルを指定しています.ここでは,ある確率年における bootstrap 推定値のヒストグラムを書かせています.繰り返し回数は,10,000 回です.1,000 回も繰り返せば信頼区間幅の乱れも気にならない程度になりますし,ヒストグラムもまずまずですが,どうせ計算機がやる仕事なので欲張ってみました.

gccBTS 1 inp_PRB.txt out_B_GUM.txt inp_BH_GUM.txt    Gumbel分布(Gumbel)
gccBTS 2 inp_PRB.txt out_B_GEV.txt inp_BH_GEV.txt    一般化極値分布(GEV)
gccBTS 3 inp_PRB.txt out_B_SQR.txt inp_BH_SQR.txt    平方根指数型最大値分布(SQRT-ET)
gccBTS 4 inp_PRB.txt out_B_LN3.txt inp_BH_LN3.txt    3パラメータ対数正規分布(LN3)
gccBTS 5 inp_PRB.txt out_B_LP3.txt inp_BH_LP3.txt    対数ピアソンIII型分布(LP3)
ファイル名概要
解析用Cプログラムソース
Cプログラムの出力データ
Cプログラムの出力データ
Cプログラムの出力データ
Cプログラムの出力データ
Cプログラムの出力データ
作図用バッチファイル
凡例用入力ファイル
出力画像(1)
出力画像(2)
出力画像(3)
出力画像(4)
出力画像(5)
ヒストグラム作図用バッチファイル
ヒストグラム画像(1)
ヒストグラム画像(2)
ヒストグラム画像(3)
ヒストグラム画像(4)
ヒストグラム画像(5)


[gcc tips] 統計解析(3):3母数Weibull分布への適合 (2011.05.03)

GMT で計測値を3母数Weibull分布に適合させた時の相関図を描く事例です. 解析の入力データは,統計解析(1)(2)と同じ,前橋市の過去 114 年間の年最大日雨量です.

適合は,以下の3方法で行ってみました.

ここで,L積法の「合田らの方法」とは, 文献「合田良実・久高将信・河合弘泰:L-moments法を用いた波浪の極値統計解析について,土木学会論文集B2(海岸工学),Vol.B2-65 No.1,2009,pp161-165」 によるものです.

この事例の結果によると,最小二乗法で決定した母数よりも最尤法で求めた母数のほうが推定精度は高いようです.

ファイル名概要
解析用Cプログラムソース
Cプログラムの出力データ
作図用バッチファイル
凡例用入力ファイル
出力画像(1)


[gcc tips] 関数の計算精度 (2011.04.29)

GMT の統計解析で用いている自分で打ち込んだ関数の精度の確認を行いました. 何と比較して精度を確認するかが問題になりますが,Excel の計算結果というのもさびしいので,「GNU Scientific Library : GNU科学技術計算ライブラリ (GSL)」の結果と比較することにしました.ライブラリのインストール,コンパイル方法,ライブラリ関数の使用方法は以下のサイトの情報によります.

サイト概要
ライブラリのバイナリ,インストール方法,コンパイル方法の解説
ライブラリの関数の使い方

Cプログラムのコンパイルと実行を行うバッチファイルの内容は以下の通りです.

gcc -Wall -o gccFUNC_gsl.exe gccFUNC_gsl.c -lgsl -lgslcblas
gccFUNC_gsl
ファイル名概要
Cプログラムソース
Cプログラムの出力データ

比較の結果は以下の通りです._gsl がGSLの関数値, _m が自分で打ち込んだ関数値です.差分を見ると小数点以下 3 桁以上の精度はあるので WANtaro としては満足です.

Gamma関数の値
xΓ(x)_gslΓ(x)_mgsl-me
0.19.5135089.513508-1.766816e-015
0.32.9915692.991569+1.069457e-015
0.51.7724541.772454+5.150719e-015
0.71.2980551.298055+9.689515e-016
1.01.0000001.000000+3.618525e-015
1.10.9513510.951351+4.843673e-016
1.30.8974710.897471+4.133521e-016
1.50.8862270.886227+3.019449e-015
1.70.9086390.908639+1.247483e-015
2.01.0000001.000000+3.618525e-015
2.51.3293401.329340+4.547469e-015
3.02.0000002.000000+7.237050e-015
3.53.3233513.323351+1.111069e-014
5.024.00000024.000000+8.684373e-014
7.51871.2543061871.254306+5.353828e-012
9.5119292.461995119292.461995+2.938378e-010
Gamma分布の%点(b=11)
px(p)_gslx(p)_mgsl-me
0.915.40664115.406641-2.314804e-009
0.9115.65356515.653565-1.093330e-010
0.9316.22631416.226314-1.812200e-009
0.9516.96221916.962219-2.065470e-009
0.9718.02457518.024575-6.673954e-009
0.9920.14468020.144680+4.554781e-009
0.99120.33876820.338769-3.032392e-008
0.99320.79630820.796308-1.210791e-008
0.99521.39782721.397828-3.490386e-008
0.99722.28949622.289496-4.706427e-008
0.99924.13397124.133971-5.763084e-008
0.999124.30635624.306356-1.404332e-007
0.999324.71472224.714722-1.700913e-007
0.999525.25555925.255560-2.160290e-007
0.999726.06472726.064727-2.387908e-008
0.999927.76229427.762297-2.473674e-006
標準正規分布の%点
px(p)_gslx(p)_mgsl-me
0.91.2815521.281552+6.084597e-009
0.911.3407551.340755+7.420276e-010
0.931.4757911.475791-1.246255e-008
0.951.6448541.644854-1.965689e-008
0.971.8807941.880794+1.848262e-009
0.992.3263482.326348+7.981440e-009
0.9912.3656182.365618+8.934213e-010
0.9932.4572632.457263-1.607723e-008
0.9952.5758292.575829-3.069485e-008
0.9972.7477812.747781-1.993342e-008
0.9993.0902323.090232+3.718253e-008
0.99913.1213893.121389+3.457654e-008
0.99933.1946513.194651+2.092817e-008
0.99953.2905273.290527-7.545326e-009
0.99973.4316143.431614-4.091656e-008
0.99993.7190163.719016+3.492103e-008


[gcc tips] 統計解析(2) (2011.04.24)

GMT で統計解析結果を描く事例です. 解析の入力データは,統計解析(1)と同じ,前橋市の過去 114 年間の年最大日雨量です. 全原データによる推定値と,Jackknife法による偏りを補正した推定値をプロットしてみました. なお,グラフでは5000年確率雨量まで計算してありますが,これはあくまで計算の練習です.114年間のデータから外挿した5000年確率雨量を信じるかどうかは別問題でしょう(他に方法がなければ信じる?).グラフを見比べると2変数の確率分布関数の場合と比較して3変数のものは値が大きくバラツキも大きくなる傾向にあるようです.

対数ピアソンIII型分布(LP3)において,「現場のための水文統計(2)」のガンマ分布%点算出プログラムでは,確率年が大きくなった時,Jackknife法による推定値が暴れるので,収束判定基準を10^(-10)オーダーに変更しています.原プログラムはFORTRAN単精度用のようです.Cプログラムでは実数は全て倍精度にしています.(2011/04/29)

awkによる凡例作成用スクリプトもフォント変更指定などを入れたとき,字数を長くカウントしすぎないよう,修正しました.(2011/04/29)

描画用データ作成のためのC実行ファイルへの命令は以下のようなものです.argv[1]に分布を指定する整数,argv[2]に入力ファイル,argv[3]に数値出力ファイル,argv[4]にヒストグラム用の数値出力ファイルを指定しています.ここでは,参考のため,ある確率年における(N-1)個のデータから算定したN個の推定値のヒストグラムを書かせています.

gccJKK 1 inp_PRB.txt out_J_GUM.txt inp_JH_GUM.txt    Gumbel分布(Gumbel)
gccJKK 2 inp_PRB.txt out_J_GEV.txt inp_JH_GEV.txt    一般化極値分布(GEV)
gccJKK 3 inp_PRB.txt out_J_SQR.txt inp_JH_SQR.txt    平方根指数型最大値分布(SQRT-ET)
gccJKK 4 inp_PRB.txt out_J_LN3.txt inp_JH_LN3.txt    3パラメータ対数正規分布(LN3)
gccJKK 5 inp_PRB.txt out_J_LP3.txt inp_JH_LP3.txt    対数ピアソンIII型分布(LP3)
ファイル名概要
解析用Cプログラムソース
Cプログラムの出力データ
Cプログラムの出力データ
Cプログラムの出力データ
Cプログラムの出力データ
Cプログラムの出力データ
作図用バッチファイル
凡例用バッチファイル作成awkスクリプト(修正版)
凡例用入力ファイル
出力画像(1)
出力画像(2)
出力画像(3)
出力画像(4)
出力画像(5)
ヒストグラム作図用バッチファイル
ヒストグラム画像(1)
ヒストグラム画像(2)
ヒストグラム画像(3)
ヒストグラム画像(4)
ヒストグラム画像(5)


[gcc tips] 統計解析(1) (2011.04.24)

GMT で統計解析結果を描く事例です.GMTの事例というよりは統計解析のプログラムがメインです. プロットするデータは,気象庁のホームページに掲載されている,前橋市の過去 114 年間の年最大日雨量です.

確率紙プロットで,回帰直線を引いてみましたが,大きいデータの乖離が大きいため,極値解析手法により,回帰し直してみました.Gumbel分布,一般化極値分布,平方根指数型最大値分布,3パラメータ対数正規分布,対数ピアソンIII型分布(対数ガンマ分布)で試してみましたが,なかなかうまく追えないようです.なお,観測値プロットのためのプロッティングポジション公式はカナン(Cunnane)公式を用いています.

解析理論は,下の文献に大変丁寧に解説されており,これを参考にしました.ガンマ分布の%点を計算するプログラムも,「現場のための水文統計(2)」に掲載の FORTRAN プログラムを C に書き直して使わさせていただいています.

ファイル名概要
解析用Cプログラムソース
年最大日雨量入力データ
Cプログラムの出力データ
作図用バッチファイル
出力画像(1)
出力画像(2)
出力画像(3)
出力画像(4)
出力画像(5)


[GMT tips] ヒストグラム (2011.04.24)

「WindowsでGMT」に移動

[GMT tips] 確率紙プロット (2011.04.20)

「WindowsでGMT」に移動

[GMT tips] 時系列グラフ (2011.04.17)

「WindowsでGMT」に移動

[GMT tips] 普通軸グラフ(円形水槽の動水圧) (2011.04.12)

「WindowsでGMT」に移動

[GMT tips] 片対数グラフ(フーリエスペクトル比) (2011.04.12)

「WindowsでGMT」に移動

[GMT tips] 両対数グラフ(加速度応答スペクトル) (2011.04.12)

「WindowsでGMT」に移動

[GMT tips] 普通軸グラフ(加速度時刻歴) (2011.04.12)

「WindowsでGMT」に移動

[gcc tips] 地震動グラフ化データ作成 (2011.04.12)

GMT で地震動をグラフ化するための C 言語プログラムソースと連続処理用バッチファイルの事例です. 地震波の加速度時刻歴データは,防災科学技術研究所が運営する KiK-net および K-net からダウンロードさせていただいたものを使用しています.

ファイル名概要
KiK-net, K-net の記録
データ書式作成用Cプログラムソース
応答スペクトル計算用Cプログラムソース
フーリエスペクトル比計算用Cプログラムソース
連続処理用バッチファイル


[GMT tips] 世界地図・日本地図 (2011.04.10)

「WindowsでGMT」に移動

[GMT tips] 凡例・フォント・カラーマップサンプル (2011.04.10)

「WindowsでGMT」に移動

[TeX tips] TeX テストファイル (2011.03.27)

個人用の TeX テストファイルです.TeX のバージョンアップ時などに挙動テストを行っています.dvipdfm or dvipdfmx で pdf 化した時,arc や circle があると変な線が入る問題は解決できていません.現在は逆にこれらを使わないようにしています.

ファイル名概要
TeX ソース
テスト用png画像
テスト用jpg画像(1)
テスト用jpg画像bbファイル(1)
テスト用jpg画像(2)
テスト用jpg画像bbファイル(2)


[gcc tips] 緯度・経度から距離を計算する (2011.03.26)

緯度・経度から距離を計算する C 言語のプログラムのサンプルです. 「Lambert-Andyer の公式」 「Hubeny の公式」 で作成してみました. こちらのサイト でも面白い実験をしています.実はこのサイトを見てこのプログラムを作ろうと思ったのでした.運営者さんに感謝です.

/*===========================*/
/* gccTipsDIST.c             */
/*===========================*/
/*緯度・経度による2点間距離計算*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

double DLA(double a,double b,double ido1,double keido1,double ido2,double keido2);
double DHB(double a,double b,double ido1,double keido1,double ido2,double keido2);
/*--------------------------------------------------------------------------*/
int main()
{
    /*double a=6377397.155; 赤道半径(m) 旧日本測地系*/
    /*double b=6356079.000; 極半径(m)   旧日本測地系*/

    double a=6378137.000000; /*赤道半径(m) 世界測地系*/
    double b=6356752.314140; /*極半径(m)   世界測地系*/
    double d1,d2;
    double ido1,keido1;
    double ido2,keido2;

    ido1=36.0+ 6.0/60.0+ 2.0/3600.0; keido1=140.0+ 5.0/60.0+28.0/3600.0;
    ido2=35.0+39.0/60.0+18.0/3600.0; keido2=139.0+44.0/60.0+41.0/3600.0;

    /*
    国土交通省サイト例題(つくば〜東京間距離)
    http://vldb.gsi.go.jp/sokuchi/surveycalc/bl2stf.html
    出発点:北緯  36度 06分 02.0秒
            東経 140度 05分 28.0秒
    到達点:北緯  35度 39分 18.0秒
            東経 139度 44分 41.0秒
    測地線長 58,501.873m
    */

    d1=DLA(a,b,ido1,keido1,ido2,keido2);
    d2=DHB(a,b,ido1,keido1,ido2,keido2);

    printf("%.6f km\n",d1/1000.0);
    printf("%.6f km\n",d2/1000.0);

}
/*--------------------------------------------------------------------------*/
double DLA(double a,double b,double ido1,double keido1,double ido2,double keido2)
{
    /*Lambert-Andyer の公式*/
    double IA,LA; /*A点緯度および経度*/
    double IB,LB; /*B点緯度および経度*/
    double phiA,phiB,XX,delta;
    double rho;/*2点間距離*/
    double FF; /*扁平率*/

    IA=ido1/180.0*M_PI; LA=keido1/180.0*M_PI;
    IB=ido2/180.0*M_PI; LB=keido2/180.0*M_PI;

    FF=(a-b)/a;
    phiA=atan((1.0-FF)*tan(IA));
    phiB=atan((1.0-FF)*tan(IB));
    XX=acos(sin(phiA)*sin(phiB)+cos(phiA)*cos(phiB)*cos(LA-LB));
    delta=FF/8.0*
        (
         (sin(XX)-XX)*pow(sin(phiA)+sin(phiB),2.0)/pow(cos(0.5*XX),2.0)
        -(sin(XX)+XX)*pow(sin(phiA)-sin(phiB),2.0)/pow(sin(0.5*XX),2.0)
        );
    rho=a*(XX+delta);

    return rho;
}
/*--------------------------------------------------------------------------*/
double DHB(double a,double b,double ido1,double keido1,double ido2,double keido2)
{
    /*Hubeny の公式*/
    double x1,y1;/*地点1の経度および緯度*/
    double x2,y2;/*地点2の経度および緯度*/
    double dy,dx,my,MM,NN,WW,e;
    double dd;/*2点間距離*/

    y1=ido1/180.0*M_PI; x1=keido1/180.0*M_PI;
    y2=ido2/180.0*M_PI; x2=keido2/180.0*M_PI;

    e=sqrt((a*a-b*b)/a/a);
    my=0.5*(y1+y2);
    WW=sqrt(1.0-e*e*sin(my)*sin(my));
    NN=a/WW;
    MM=a*(1.0-e*e)/WW/WW/WW;
    dy=y1-y2;
    dx=x1-x2;
    dd=sqrt(pow(dy*MM,2.0)+pow(dx*NN*cos(my),2.0));

    return dd;
}
/*--------------------------------------------------------------------------*/


[TeX tips] TeX でフローチャートを描く (2011.03.20)

TeX でフローチャートを描くための,Terry Brown 氏による C 言語のプログラム (flow.c , flow.exe) の紹介です.TeX の picture 環境にフローチャートを描くコードを出力します.



[gcc tips] qsort を使う:構造体のソート (2011.02.24)

C 言語の関数 qsort を用いて,構造体をソートする方法です.

/*---------------------------------------------------------*/
/* gccTipsSORTS.c */
/*---------------------------------------------------------*/
/* 構造体のqsort */
/*---------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
typedef struct{
  int idat;
  char *sdat;
  double ddat;
}FOO;
 
int COMP_SDS(const void *a,const void *b);
int COMP_SSS(const void *a,const void *b);
/*---------------------------------------------------------*/
int main(void)
{
    int i;
    FOO dset[10];
 
    i=0;dset[i].idat=i+1;dset[i].sdat="Tokyo"   ;dset[i].ddat= 123.5;
    i=1;dset[i].idat=i+1;dset[i].sdat="Nagoya"  ;dset[i].ddat=  99.8;
    i=2;dset[i].idat=i+1;dset[i].sdat="Yokohama";dset[i].ddat=  10.1;
    i=3;dset[i].idat=i+1;dset[i].sdat="Nagano"  ;dset[i].ddat=  20.5;
    i=4;dset[i].idat=i+1;dset[i].sdat="Oosaka"  ;dset[i].ddat=1000.3;
    i=5;dset[i].idat=i+1;dset[i].sdat="Sendai"  ;dset[i].ddat= 999.8;
    i=6;dset[i].idat=i+1;dset[i].sdat="Sapporo" ;dset[i].ddat=  30.5;
    i=7;dset[i].idat=i+1;dset[i].sdat="Akita"   ;dset[i].ddat= 400.5;
    i=8;dset[i].idat=i+1;dset[i].sdat="Fukuoka" ;dset[i].ddat= 600.8;
    i=9;dset[i].idat=i+1;dset[i].sdat="Maebashi";dset[i].ddat=   3.1;
 
    printf("***Before qsort***\n");
    for(i=0;i<=9;i++){
        printf("%d %s %g\n", dset[i].idat,dset[i].sdat,dset[i].ddat);
    }
    qsort(dset,10,sizeof(FOO),COMP_SDS);
    printf("***After qsort (double)***\n");
    for(i=0;i<=9;i++){
        printf("%d %s %g\n", dset[i].idat,dset[i].sdat,dset[i].ddat);
    }
 
    qsort(dset,10,sizeof(FOO),COMP_SSS);
    printf("***After qsort (char)***\n");
    for(i=0;i<=9;i++){
        printf("%d %s %g\n", dset[i].idat,dset[i].sdat,dset[i].ddat);
    }
 
  return 0;
}
/*---------------------------------------------------------*/
 
int COMP_SDS(const void *a,const void *b)
{
    /*構造体ソート*/
    /*doubleの変数 (ddat) の小さい順*/

    FOO temp1 = *(FOO*)a;
    FOO temp2 = *(FOO*)b;

    double p1=temp1.ddat;   /*ddatでソート*/
    double p2=temp2.ddat;

    /*小さい順*/
    if(p1> p2)return  1;
    if(p1==p2)return  0;
    if(p1< p2)return -1;
} 
/*---------------------------------------------------------*/
int COMP_SSS(const void *a,const void *b)
{
    /*構造体ソート*/
    /*charの変数 (sdat) の小さい順*/
 
    FOO temp1 = *(FOO*)a;
    FOO temp2 = *(FOO*)b;
 
    char *p1=temp1.sdat;   /*sdatでソート*/
    char *p2=temp2.sdat;
 
    /*小さい順*/
    return strcmp(p1,p2);
} 
/*---------------------------------------------------------*/


[gcc tips] qsort を使う:数値・文字列のソート (2011.02.24)

C 言語の関数 qsort を用いて,数値・文字列のソートを行います.

自分で定義する比較関数の戻り値は整数型なので,実数型 (double など) をソートする場合は,戻り値を整数型にする必要があります.

/*-------------------------------------------------------*/
/* gccTipsSORT.c*/
/*-------------------------------------------------------*/
/* qsort の使い方 */
/*-------------------------------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* qsort 比較関数プロトタイプ宣言 */
int COMP_IS(const void *a,const void *b);
int COMP_IL(const void *a,const void *b);
int COMP_DS(const void *a,const void *b);
int COMP_DL(const void *a,const void *b);
int COMP_SS(const void *a,const void *b);
int COMP_SL(const void *a,const void *b);
/*-------------------------------------------------------*/
int main()
{
    int i;
    int n=12;
    int idata[]={50,30,90,44,13,46,82,42,70,74,20,62};
    double ddata[]={0.50,0.30,0.90,0.44,0.13,0.46,0.82,0.42,0.70,0.74,0.20,0.62};
    char *sdata[]={"aa","zz","pp","zzasdfg","gg","CC","bb","nn","zz","mm","kk","ii"};

    printf("***Integer***\n");
    qsort(idata,n,sizeof(idata[0]),COMP_IS);
    for(i=0;i<=n-1;i++){
        printf("%d\n",idata[i]);
    }
    printf("-------------\n");
    qsort(idata,n,sizeof(idata[0]),COMP_IL);
    for(i=0;i<=n-1;i++){
        printf("%d\n",idata[i]);
    }

    printf("***Double***\n");
    qsort(ddata,n,sizeof(ddata[0]),COMP_DS);
    for(i=0;i<=n-1;i++){
        printf("%g\n",ddata[i]);
    }
    printf("-------------\n");
    qsort(ddata,n,sizeof(ddata[0]),COMP_DL);
    for(i=0;i<=n-1;i++){
        printf("%g\n",ddata[i]);
    }

    printf("***String***\n");
    qsort(sdata,n,sizeof(sdata[0]),COMP_SS);
    for(i=0;i<=n-1;i++){
        printf("%s\n",sdata[i]);
    }
    printf("-------------\n");
    qsort(sdata,n,sizeof(sdata[0]),COMP_SL);
    for(i=0;i<=n-1;i++){
        printf("%s\n",sdata[i]);
    }

}
/*-------------------------------------------------------*/
int COMP_IS(const void *a,const void *b)
{
    /*小さい順*/
    return *(int*)a-*(int*)b;
}
/*-------------------------------------------------------*/
int COMP_IL(const void *a,const void *b)
{
    /*大きい順*/
    return *(int*)b-*(int*)a;
}
/*-------------------------------------------------------*/
int COMP_DS(const void *a,const void *b)
{
    /*比較関数は戻り値が整数型なので*/
    /*整数値を返すようにする*/
    /*小さい順*/
    if(*(double*)a> *(double*)b)return  1;
    if(*(double*)a==*(double*)b)return  0;
    if(*(double*)a< *(double*)b)return -1;
}
/*-------------------------------------------------------*/
int COMP_DL(const void *a,const void *b)
{
    /*大きい順*/
    if(*(double*)b> *(double*)a)return  1;
    if(*(double*)b==*(double*)a)return  0;
    if(*(double*)b< *(double*)a)return -1;
}
/*-------------------------------------------------------*/
int COMP_SS(const void *a,const void *b)
{
    /*小さい順*/
    return strcmp(*(char**)a,*(char**)b);
}
/*-------------------------------------------------------*/
int COMP_SL(const void *a,const void *b)
{
    /*大きい順*/
    return strcmp(*(char**)b,*(char**)a);
}
/*-------------------------------------------------------*/


[gcc tips] 小文字<-->大文字変換 (2011.02.24)

英数字の文字列中の大文字を小文字に,あるいはその逆の処理を行います.

/*---------------------------------------------*/
/* gccTipsHEN.c*/
/*---------------------------------------------*/
/* 文字列中の大文字と小文字の変換              */
/*---------------------------------------------*/
#include <stdio.h>
#include <string.h>
#include <ctype.h>

void TOLOW(char *str);
void TOUPP(char *str);
/*---------------------------------------------*/
int main()
{
    int i;
    char dat[50]="";

    strcpy(dat,"WANtaroHP");
    printf("+++%s+++\n",dat);
    TOLOW(dat);                 /*小文字に変換*/
    printf("---%s---\n",dat);
    TOUPP(dat);                 /*大文字に変換*/
    printf("+++%s+++\n",dat);

    return 0;
}
/*---------------------------------------------*/
void TOLOW(char *str)
{
    /*小文字に変換*/
    int i;

    for(i=0;i<=strlen(str)-1;i++){
        str[i]=tolower(str[i]);
    }
}
/*---------------------------------------------*/
void TOUPP(char *str)
{
    /*大文字に変換*/
    int i;

    for(i=0;i<=strlen(str)-1;i++){
        str[i]=toupper(str[i]);
    }
}
/*---------------------------------------------*/


[gcc tips] popen を用いて MS-DOS コマンドを実行する (2011.02.22)

MinGW gcc では popen を使えるので,popen で cmd.exe を実行し,fprintf で色々な文字列や数値を送り込みます.

system 関数にコマンドを入力する方法もありますが,こちらのほうが便利だと思います.

/*---------------------------*/
/* gccTipsCMD.c */
/*---------------------------*/
#include <stdio.h>
/*---------------------------------------------------------------------------*/

int main()
{
    char scom[]="dir";
    FILE *fp;

    fp=popen("cmd.exe","w");
        fprintf(fp,"%s\n",scom);
        fflush(fp);
    pclose(fp);

    printf("リターンキーを押してください");
    getchar();
    return 0;
}
/*---------------------------------------------------------------------------*/


[gcc tips] 指定したフォルダ内のファイルを表示する (2011.02.22)

このプログラムは NI-Lab. (http://www.nilab.info/zurazure/200304.html) に掲載されていたものを使わさせていただいています.

NI-Lab. さんの原典には含まれていますが,sys/types.h はインクルードしていません.特に問題ないようです.

WANtaroHP(VB & C# 数値処理) のプログラムでは popen でコマンドプロンプトを開き,dirコマンドを送ってファイル名を取得していますが,こちらのほうが美しいです. dirent.h を知っているかどうかですね.

/*--------------------------------------------*/
/* gccTipsWDIR.c                              */
/*--------------------------------------------*/
/* c:指定したフォルダ内のファイルを表示する  */
/* http://www.nilab.info/zurazure/200304.html */
/* MinGW gcc でコンパイル・実行結果では,     */
/* .および..とdir名,ファイル名が表示される   */
/*--------------------------------------------*/
#include <stdio.h>
#include <dirent.h>

void test(char *name)
{
    /* DIR構造体へのポインタを宣言 */
    DIR *dirp;

    /* dirent構造体へのポインタを宣言 */
    struct dirent *entp;

    /* DIR構造体へのポインタを得る(引数はパス) */
    dirp = opendir(name);

    /* dirent構造体へのポインタを得る */
    while ((entp = readdir(dirp)) != NULL){
      /* ファイル名を出力 */
      printf("%s\n", entp->d_name);
    }

    closedir(dirp);
}
 
int main(int argc, char **argv)
{
    if(argc == 1){
        test(".");
    }else{
        test(argv[1]);
    }
    return 0;
}

ちなみに WANtaro の方法は以下の通り. dirR は読み取るディレクトリ,dirW は結果のファイルを書き出すディレクトリです.

    char dirR[100]="c:\\Windows\\Fonts";
    char dirW[100]="d:\\20110224\\GNUpro\\gcc7IMfont";

    /*フォント名書出用コマンド実行*/
    strcpy(fnameW,"font_dir.txt");
    fp=popen("cmd.exe","w");
        fprintf(fp,"dir %s > %s\\%s\n",dirR,dirW,fnameW);
        fprintf(fp,"exit\n");
        fflush(fp);
    pclose(fp);


[gcc tips] strtok 関数の使用法サンプル (2011.02.22)

このプログラムは マイクロソフトサポートオンライン (http://support.microsoft.com/kb/51327/ja) に掲載されていたものを参考にしています.

1 行の中に入っているデータ個数が変化する場合などに便利そうです.

/*---------------------*/
/* gccTipsSTRTOK.c     */
/*---------------------*/
/* atok 使用法サンプル */
/*---------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    FILE *fin,*fout;
    char dat[256]="";
    char *token;

    fin=fopen("inp_STRTOK.txt","r");
    fout=fopen("out_STRTOK.txt","w");
    while(fgets(dat,sizeof dat,fin)!=NULL){
        token=strtok(dat," ");
        while(token!=NULL){
            printf("%s\n",token);
            fprintf(fout,"%s\n",token);
            token=strtok(NULL," ");
        }
    }
    fclose(fin);
    fclose(fout);
}
ファイル名概要
入力事例
出力事例


[gcc tips] 文字列の先頭と末尾の空白を削除する (2011.02.22)

このプログラムは C言語関数辞典 (http://www.c-tipsref.com/tips/string/o_trim.html) を参考にさせていただきました.

Visual Studio では Trim() があって便利だけど C では自分で作らなければならず,いいものがないか探していたところ,上記サイトを見つけましたので,自分なりにアレンジしてみました.

/*--------------------------------*/
/* gccTipsTRIM.c */
/*--------------------------------*/
/* 先頭と末尾の空白を削除         */
/*--------------------------------*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void Trim(char *s);
/*-------------------------------------------------*/
int main()
{
    char bstr[]="     This is a pen  ";

    printf("***%s***\n",bstr);

    Trim(bstr);

    printf("***%s***\n",bstr);

    return 0;
}
/*-------------------------------------------------*/

void Trim(char *s)
{
    int i;

    /*末尾から空白でない位置を捜し終端文字を付加*/
    /*strlenは終端文字は数えない*/
    /*配列s[]の添字の範囲は0からstrlen(s)-1*/
    for(i=strlen(s)-1;i>=0;i--){
        if(s[i]!=' ')break;
    }
    s[i+1]='\0';

    /*先頭から空白でない位置を捜しその位置以降をstrcpy*/
    for(i=0;i<=strlen(s);i++){
        if(s[i]!=' ')break;
    }
    strcpy(s,&s[i]);
}
/*-------------------------------------------------*/


[HTML tips] このサイトで使っている背景色 (2010.04.02)

このサイトで使っている背景色の一覧表を作ってみました.CSS は本文で用いているものを読み込み,表に着色する部分を付け加えています.

ファイル名概要
css ファイル
html 文書


[HTML tips] CSS による縦並び・横並びリンク(2010.03.27)

CSS による縦並び・横並びリンクの事例.これは「詳説 HTMLタグ辞典」(秀和システム:2008.02.24)p228-229 記載の事例を応用したものです.

ファイル名概要
css ファイル
html 文書


[HTML tips] CSS による角丸ボックス表示(2010.03.17)

CSS のみによる角丸ボックス表示の事例です.添付 html 文書の左メニュー下に表示しています.これは「詳説 HTMLタグ辞典」(秀和システム:2008.02.24)p258-259 記載の事例を実行したものです.

ファイル名概要
css ファイル
html 文書


[Web] Opera で pdf を見る(2010.03.13)

Opera で pdf を見る場合,表示はしてくれるが元に戻る時強制終了してしまうなどの問題がありました. これに対処するには,以下の手順で ok のようです.

Opera を開く --> [ツール] --> [設定] --> [詳細設定] --> [ダウンロード] --> 「Opera で開くファイルタイプを表示しない」のチェックをはずす --> 「拡張子 pdf」の選択 --> [編集] --> 「標準のアプリケーションで開く」を選択 --> [OK]

上記設定により,Web ページで pdf を選択すると,Opera の外に Adobe Reader が立ち上がりpdfを表示してくれます.当然 Adobe Reader がインストールされていることが条件です.



[Web] XP でメイリオフォントを綺麗に表示する (2010.03.02)

XP 用メイリオフォントのありかは「http://www.microsoft.com/downloads/details.aspx?FamilyID=f7d758d2-46ff-4c55-92f2-69ae834ac928&DisplayLang=ja」

XP では,せっかくメイリオフォントを入れても,FireFox などで,周囲がギザギザになりきれいに表示できない場合があります. この場合,

[コントロールパネル] --> [画面] --> [デザイン] --> [効果] --> [次の方法でスクリーンフォントの縁を滑らかにする] --> Clear Type を選定

とすることにより,うまく表示ができるようになります.



[HTML tips] HTML 文法チェックサイトへのリンク (2010.03.01)

リンク先概要
W3C のチェッカー.英語版です
きめ細かなチェックを行ってくれる.100 点満点の点数評価.日本のサイトです
Validate entire site のオプション指定により,サイト全体をチェックしてくれる.英語版です


[ HTML tips ] CSS による疑似 2 段組レイアウト (2010.02.28)

WANtaro が使っているレイアウトを作るための CSS と html 文書の基本部分です.解説書やインターネットで調べて試行してみましたが,右側のみ可変幅とするとなかなかうまく行かず,試行錯誤で現在はこれに落ち着いています.

この方法では,下の失敗事例に示すように,左側の行数が右側より大きくなると突き抜けてしまうという短所があります.

css 中の「後フッター」という部分は,このページの最後へのリンクボタンを,右端につけるために設けた「帯」です.

css 中の「前フッター」という部分は,Top page へのリンクボタンを,左端につけるために設けた「帯」です.

ファイル名概要
css ファイル
html 文書(成功事例)
html 文書(失敗事例)


[ HTML tips ] ボタンによるリンク (2010.02.14)

インターネットで調べて,「このページ」を参考に,本ページ左下のような Top page へのリンクボタンを作りました.下のコマンドは,"index.html"というページの"header"という id がつけられた場所にリンク(ジャンプ)するものです.

<form action="index.html#header"><p><input type="submit" value=" ▲Top page "></p></form>


[Web] Windows XP SP2/SP3でJ:COMの転送速度を速くする(2008.12.20)

http://www.homw.nw.jp/cs/tool/index_a.html
↑ここから「ブロードバンド最適化ツール」をダウンロード・保存すると保存したフォルダに「BBtuner.exe」という実行ファイルが作成されます. これを実行し,画面で「RWIN」の値を変更します.RWINの選択肢は以下の通り.

RWIN 179200 256960 338720 473600

最適な値は試行錯誤で探すしかないようです.値を大きくしてもスピードが極端に落ちる場合もあるため注意! またRWIN以外の箇所は変更しないことにも注意です!



inserted by FC2 system