Home > Tags > C#

C#

ちゃんと数学を勉強しておけばよかった。

人間というものは、恥ずかしくて死にそうになることが、よくある。たとえば、"てけとーにマウスで引いたギザギザな線を微妙にきれいな曲線で描画したい(http://www.be-styles.jp/archives/2002)"みたいな記事だ。ほんとに、クソみたいなコードだ。マウスで絵を描いたとき、入力された点をただ直線で結ぶとギザギザになってしまう。それを、"不要な点を省く&曲線で繋ぐ"ことで滑らかな曲線にするというアイデアはともかくその実装方法は赤面ものだ。

ってことで、まともに考えてみた。

Continue reading

[C#] 拡張メソッドでちょっとコードをきれいにする

点と点の距離や中点をとる場合などに、Point型をPointF型に簡単に変換できたら便利。そのためのメソッドは、こんな感じになるだろう。

public PointF PointToPointF(Point p)
{
    return new PointF((float)p.X, (float)p.Y);
}

けど、こんなメソッドが増えてくると、なんだか全体のコードの見通しが悪くなって気持ち悪い。ユーティリティー系メソッドを別ファイルにしてまとめておくというのもアリだが、PointToPointF() という名前がなんともはや(Delphi ならこれでもいい気がするけど)。

できれば、i.ToString() みたいに p.ToPointF() なんて書ければいいのだが。

C#3.0 なら拡張メソッドを使うことで、簡単に(継承を使わずに)既存のクラスへ新しいメソッドを付け加えることが出来るらしい。

Continue reading

てけとーにマウスで引いたギザギザな線を微妙にきれいな曲線で描画したい

image

経済学で使う無差別曲線をてきとーに書けるソフトがほしいけど、そんな都合のいいものはないらしい。んだらば自分で作るしかないんだけど、てけとーにマウスで引いたギザギザな線が微妙にきれいなるようにするのってどうすりゃいいんだろうか。さっぱり訳わかめ。

image image

とりあえず、サンプルを作ってみた。左みたいに適当に書くと、右のようにちょっときれいになる。

Continue reading

C# で SQLite を使う

System.Data.SQLite <http://sqlite.phxsoftware.com/> が有名だそうな。

なるほど、アーカイブを落として、DLLをプロジェクトの参照に加えるだけで簡単に SQLite を利用することができました。

image

ちょっと、軽いメモソフトを作りたいんですよね。
Wiki的な管理ができて、すべてのメモを単一ファイルで持ち運べるとうれしい。
ぜひタグ機能もほしいんだけど、(スマートな)実装はなかなか難しい感じ。もう少し勉強せねば。

ついでに、ここのメモを好きな時に WP-XML-RPCLib & WP-XML-RPCCLib – SharpLab. <http://blog.sharplab.net/computer/cprograming/wp-xml-rpclib/1383/> でそのままブログにつっこめたら、便利かなぁとか何とか考えています。

[C#] システムフォントを列挙する

image

foreach (FontFamily family in FontFamily.Families)
{
    if (family.IsStyleAvailable(FontStyle.Regular))
        comboBoxFonts.Items.Add(family);
}
comboBoxFonts.SelectedIndex
  = comboBoxFonts.Items.IndexOf(this.Font.FontFamily);

System.Windows.Drawing.FontFlamiliy で取れるみたいです。(via C# Programming)

System.Windows.Media にも似たようなクラスがありますね。WPFのときに使うのでしょうか。フォントによってはレギュラーもサポートしていないものがあって、描画しようとするとエラーがでるのでチェックの上弾いてます。

コレだけじゃ面白くないので、コンボボックスにしてみるありがちな例

Continue reading

[C#] Web上のイメージをコントロールに描画する

image

private void button1_Click(object sender, EventArgs e)
{
    Stream s = new WebClient().OpenRead("http://www.be-styles.jp/mainichi.jpg");
    Bitmap b = new Bitmap(s);

    using (Graphics g = this.CreateGraphics())
    {
        g.DrawImage(b, new Point(0, 0));
    }
}

System.Net を using すること。

WebClient で画像のURLを開くと、stream が帰ってくる。 stream から Bitmap を生成できるので、あとはお気に召すまま。

[C#] テキスト内のURLにリンクをはる

using System.Text.RegularExpressions;

static string MakeUrlLink(Match m)
{
    return string.Format("<a href={0}>{0}</a>", m.ToString());
}

Regex r = new Regex("https?://[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%# ]+");
text = r.Replace(text, MakeUrlLink);

もしかして MakeUrlLink を定義しなくても書ける…?それはおいおい勉強していくということで。

Continue reading

Home > Tags > C#

My Friend Feed

http://friendfeed.com/daruyanagi

Google Analyticator

599
 Unique Visitors 
 (1 day) 
Powered By Google Analytics

Return to page top