![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
StretchDIBits()のxSrc, について質問なんですが
この座標は, 画面の左下,左はしを(0,0)
を基準としているんですか?
普通の関数の座標基準点とは上下逆になっているんですか?
int StretchDIBits(
HDC hdc,
int XDest ,
int YDest ,
int nDestWidth ,
int nDestHeight ,
int XSrc ,
int YSrc ,
int nSrcWidth ,
int nSrcHeight ,
CONST VOID *lpBits,
CONST BITMAPINFO *lpBitsInfo,
UINT iUsage ,
DWORD dwRop
);
No.3ベストアンサー
- 回答日時:
参考URLの先のページの『解説』に、
> ボトムアップの DIB の原点は、ビットマップの左下隅です。トップダウンの DIB の原点は、ビットマップの左上隅です。
とあるように、対象とするDIBによって変わります。
lpBitsInfoで示される、DIBの高さが正の数のときボトムアップであり、こちらが一般的です。
lpBitsInfoで示される、DIBの高さが負の数のときトップダウンとなります。
ちなみに、YDestは、hdcに選択されているビットマップがボトムアップかトップダウンかにかかわらず、左上隅が原点になります。
参考URL:http://msdn.microsoft.com/library/ja/default.asp …
回答どうもありがとうございます!
ボトムアップ トップダウンによって原点がかわるということですね。
なるほど、ややこしくなってたので参考になりました。
ありがとうございます
No.2
- 回答日時:
★アドバイス
>StretchDIBits()のxSrc, について質問なんですが
>この座標は, 画面の左下,左はしを(0,0)
>を基準としているんですか?
↑
いいえ、左上が (0,0) の座標になります。
よって
>普通の関数の座標基準点とは上下逆になっているんですか?
↑
他の関数と同じです。
ただし、マイナスの値を引数に渡せます。
この動作によってビットマップ画像の左右逆転、上下逆転したイメージを簡単に
描画できます。
・マイナスに出来る値は確か nSrcWidth、nSrcHeight、nDestWidth、nDestHeight の引数です。
nSrcWidth=32、nSrcHeight=32 で
nDestWidth=+32、nDestHeight=+32 …普通(反転なし)
nDestWidth=-32、nDestHeight=+32 …左右反転
nDestWidth=+32、nDestHeight=-32 …上下反転
nDestWidth=-32、nDestHeight=-32 …上下左右反転(180°逆転)
となります。
・MSDN マニュアルにちゃんと
>符号が異なる場合、x 軸を中心にしてビットマップのミラーイメージを作成します。
と書かれています。よって座標の左下が (0,0) ではなくて引数の符号により描画方向が
変化するためちょっと混乱したようですね。
・下の『参考URL』をどうぞ。
以上。
参考URL:http://msdn.microsoft.com/library/ja/jpgdi/html/ …
回答ありがとうございます。
>左上が (0,0) の座標になります。
>他の関数と同じです。
がちょっと解らなかったですが
>ボトムアップの DIB の原点は、ビットマップの左下隅です。
どうやら勘違いで
ビットマップ左下隅を 画面左下隅と思い込んでたようです
ビットマップ反転も教えていただきありがとうございます。
そこはあきらめていましたので。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- C言語・C++・C# プログラミングペーパーテスト 次の問題の実行結果を答えろ #include int x[ ] = { 1 2022/06/16 21:49
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# ポインタの型変換、どうやるんでしたっけ? 2 2022/03/28 11:00
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# leetcode 155 minstack 1 2022/05/07 16:43
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
3次元空間上の2つの座標から...
-
以下のプログラムは重心を求め...
-
エクセルで回転する座標の出し方
-
運動のプログラムをおしえてく...
-
閉図形の座標の配列が右回りか...
-
多角形の内部かどうか判定する方法
-
オートシェイプ円弧の中心点、...
-
マインクラフト(pc版)で座標...
-
円弧の描画について
-
始点、終点の二つの座標と半径...
-
空間上の二点を結ぶ直線上に任...
-
Excel VBA で自在に図形を変化...
-
ダイアログ内コントロールの位...
-
GLで座標を変えて回転させたい
-
ワード上Shapeの位置情報を統一...
-
有限要素法について教えてください
-
四角形の当たり判定についての...
-
C# 2つのベクトルのなす角を二...
-
エクセルである点からの距離で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
エクセルである点からの距離で...
-
エクセルで回転する座標の出し方
-
3次元空間上の2つの座標から...
-
始点、終点の二つの座標と半径...
-
c言語でキーボードから2点の座...
-
閉図形の座標の配列が右回りか...
-
以下のプログラムは重心を求め...
-
交差する2線分の交点座標の求め方
-
y=x^2の座標をプロットするプロ...
-
ダイアログ内コントロールの位...
-
シーケンサー(PLC?)で制...
-
ガウシアンフィルタのCプログラム
-
多角形の内部かどうか判定する方法
-
直線上にある点の座標の求め方
-
エクセルシート上のマウスポイ...
-
OpenCvSharp4による画像判定解...
-
C言語 配列で座標
-
ピクチャボックスの座標取得
おすすめ情報