コードはこんな感じ
protected void SaveGraph( String filename )
{
int count = this.pos.Count;
int [] source = new int[count];
int [] dist = new int[count];
int posIndex;
for (posIndex = 0; posIndex < count; posIndex++)
{
source[posIndex] = (int)altitude[posIndex];
dist[posIndex] = (int)distance[posIndex];
}
Bitmap bitmap = new Bitmap(700, 300);
Graphics g = Graphics.FromImage(bitmap);
g.FillRectangle(Brushes.White, 0, 0, bitmap.Width, bitmap.Height );
NPlot.Bitmap.PlotSurface2D surface = new PlotSurface2D(bitmap);
NPlot.StepPlot plot = new NPlot.StepPlot();
plot.Pen.Color = Color.FromArgb(16, 128, 255);
plot.DataSource = source;
plot.AbscissaData = dist;
surface.Add(plot);
surface.YAxis1.WorldMin = 0;
surface.YAxis1.Label = "高度 (m)";
surface.XAxis1.Label = "走行距離 (m)";
surface.Refresh();
bitmap.Save( filename, ImageFormat.Jpeg );
}
結果はこんな感じ
ログはこんな感じ
たまには鯛
GPSログ -高度の記録をグラフで出力する
NPlotが.netやmonoで使えそうなので試してみた.
参考:.NETグラフライブラリ「NPlot」 (Database tearoomの夜明け)
■MonoDevelopでNPlotを使用する準備
1. NPlotのホームページから最新のnplot-0.9.10.0.zipをダウンロード
2. nplot-0.9.10.0.zipを適当なフォルダに展開
binフォルダ以下には, netに並んでmonoフォルダも用意されています
3. MonoDevelopを開いて(プロジェクト)を開く
4. ソリューション ビューで(プロジェクトの)参照を右クリックして「参照アセンブリの編集」を選択
5. 「.NETアセンブリ」タブを選択
6. 2.で展開した nplot-0.9.10.0/bin/mono/2.0/release/NPlot.dllを選択して追加する
7. 実行ファイルのフォルダにNPlot.dllをコピーしておく
試しにソースに次を設定して,コンパイルが通りました.
using NPlot.Bitmap;
当面の目的はWindows.Formに表示するのではなく,
画像ファイルに出力してhtmlに表示できるようにすること.
■サンプルプログラム
using System.Drawing;
using System.Drawing.Imaging;
using NPlot.Bitmap;
int [] source = { ,,, };
Bitmap bitmap = new Bitmap(500, 250);
NPlot.Bitmap.PlotSurface2D surface = new PlotSurface2D(bitmap);
NPlot.HistogramPlot plot = new NPlot.HistogramPlot();
plot.DataSource = source;
surface.Add(plot);
surface.Refresh();
bitmap.Save( “aaa.bmp”, ImageFormat.Bmp );
結果は下のように.
とりあえずはグラフが出せました.
色々と整形が必要ですね.
USBカメラその後
久しぶりに物語を読んだような気がする。 できそこないの物語 1 箱宮 ケイ 出版 : 講談社 ISBN :
久しぶりに物語を読んだような気がする。
![]() |
できそこないの物語 1 箱宮 ケイ 出版 : 講談社 ISBN : 978-4-06-373142-2 発行年月 : 2008.10 |
![]() |
できそこないの物語 2 箱宮 ケイ 出版 : 講談社 ISBN : 978-4-06-373161-3 発行年月 : 2009.3 |
ぐるぐる目の猫のロコが渋くてカッコいい。
あとココリは子狐狸かなと思ったり…
作者のブログ → 箱宮ケイのおもちゃ箱
GPSログの処理 2
少し進展。
A, B点があった場合に、その距離をd(A, B)とする。
「d(A, C) * 1.2 < d(A, B) + d(B, C) の場合にはB点を省く。」 というルールでルートを縮約します。 結果、少し改善されたようです。 →
上記の方法だと、コーナーではどうしてもルートを丸めてしまうので、
距離が少なめに評価されてしまいます。
ログそのままだと距離が長めに評価されるので、それよりはいいと思ってますが。
// total distance
20.064 km → 19.774 km
走行距離は1.5%くらい短くなりました。
GPSログの処理
GPSログの処理で、積算距離を求める。
ヒュベニの距離計算式
これで2点間の距離を求め、距離を積算できました。
で、問題は次のようなログ。
実際は10分ほど休憩しているのですが、
誤差のため、ポイントが飛び回っています(泣。
■次で解決できる?
A, B点があった場合に、その距離をd(A, B)とすると、
d(A, C) > d(A, B) + d(B, C)
の場合にはB点を省く。
許容する最大距離と時間を制限すれば、何とかなりそうな?
春満開前
朝から天気がよかったので、ようやくタイヤ交換。
近所からカレーのにおいが漂ってきます。
お昼は両親と蕎麦を食べにいきました。
「相滝」
山の中の集落の外れ、
若旦那が妹の同級生だそうです。
蕎麦もおいしかったけど、
ソバプリンもおいしかった。
今日の付きだしの「ごんご」も好き。
近くにあった五十島(?)の大杉
春はじめました
手取キャニオンロード 往路 20km分
金曜日には金沢でも桜の開花宣言がでました。
土曜日にようやく自転車で走れました!
13度くらいまで気温はあがったけど、体質なのか、
走り出しても体温が上がらず、筋肉が硬く悪循環。
帰ってからすぐに風呂に入りました。
ログ出力は未完成もいいところですが、使用を始めます。
現在は走行距離の計算ルーチンを作成中。
どうしても多めに積算されるので、インテリジェントに処理したいところ。