- PR -

原点を左下にしたい

1
投稿者投稿内容
ナヲ
常連さん
会議室デビュー日: 2004/02/25
投稿数: 32
投稿日時: 2004-02-26 20:03
こんにちは。

ピクチャーボックスに描画する際の原点を、左上ではなく左することは可能でしょうか?
描画するのがグラフのため、原点が左下にあったほうが考えやすいので・・・

よろしくお願いいたします。


sou
ベテラン
会議室デビュー日: 2002/09/25
投稿数: 56
投稿日時: 2004-02-26 20:24
私も原点座標を左下にできないかなと思い少し調べましたが、
よくわかりませんでした。

左上原点は最初は戸惑うと思いますが、
馴れると気にならなくなりますよ。
どうしても気になるなら変換する関数を作成してしまえば
いいと思います。

たとえば・・

public static Point ConvertPoint(Point p)
{

  int height = picturebox1.Height;

  return new Point(p.X,height - p.Y);

}

ナヲ
常連さん
会議室デビュー日: 2004/02/25
投稿数: 32
投稿日時: 2004-02-26 20:33
ありがとうございます。

DLLから座標配列を取得するのですが、できれば、そのままグラフにしたい、などと、
甘い考え・・・。
やっぱり、自分で変換させるしかないのでしょうね。

ありがとうございました!
ya
大ベテラン
会議室デビュー日: 2002/05/03
投稿数: 212
投稿日時: 2004-02-26 21:25
Graphicsオブジェクトは、Transformプロパティでワールド行列が設定できますけど…。
そういうことではない?
会議室デビュー日: 2004/02/26
投稿数: 14
投稿日時: 2004-02-26 21:32
初投稿。テスト書き込み。

http://www.microsoft.com/japan/msdn/library/?url=/japan/msdn/library/ja/cpguide/html/_gdiplus_coordinate_systems_and_transformations_about.asp?frame=true
ナヲ
常連さん
会議室デビュー日: 2004/02/25
投稿数: 32
投稿日時: 2004-02-26 22:18
返答ありがとうございます。
ワールド変換というものを使ってやってみたら、出来ました!

g.TranslateTransform(0, picturebox1.Height - 1)
g.ScaleTransform(1, -1)

これで、左下が原点になりました!
ありがとうございました!
ナヲ
常連さん
会議室デビュー日: 2004/02/25
投稿数: 32
投稿日時: 2004-02-26 22:22
あ さんもありがとうございました。
調べたり無いまま投稿してしまい申し訳ありませんでした。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)