• ベストアンサー

座標

VC++のMFCで図形を書いているのですが、MFCでは基本画面の左上が原点になり→向きがxの正で↓向きがyの正ですがこれだと-の座標が表示できないというのもあり、改善の方法として2つありますが今回は図形を表示したいだけですので全ての座標に+100をする方法をとりました。 (例:(-20,-20)→(80,80)) しかし講師の方はy座標の符号を変える必要があると言いました。この点がいまいち理解しずらいのですが普通に100足すだけでも移動できてると思うのですがどうなのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

Y軸の反転が必要な理由は (-20,-20) から (33,15)へ直線を引く場合 X/Y軸ともに100のオフセットを加えただけでは (80,80) から (133,115)への直線になります これは右下がりの直線ですよね 本来は右上がりの直線が欲しいはずです 原点を(100,100)とするなら (80,120)から(133,85)へ直線を引けば数学などで使う座標系と同じように表示可能です MFCを使うのであれば CDCのSetWindowExt / SetViewportExt/ SetViewOrg / SetMapModeなどを使えば座標変換をしなくても描画できます

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.4

>しかし講師の方はy座標の符号を変える必要があると言いました。この点がいまいち理解しずらいのですが 点Aを(50,50)、点Bを(50,60)とした時、一般的な2軸座標のグラフは    Y    |    |    |    |   ・B    |   ・A    | --+------------X    | のように「点Bの位置は、点Aより上の位置」になります。 このまま、X,Yに100足すだけで描画すると、画面上はどうなるでしょう? 画面には       ・A 画面座標で(150,150)       ・B 画面座標で(150,160) と描画されます。 質問者さんは「どうしてBの方が下に描画される」のか、疑問に思わないのですか?

zaqwe
質問者

補足

質問の方にも書いてありますが、MFCでは左上端が原点で x座標は→へいくほど正 y座標は↓へいくほど正 という概念を持てばBの方が下でも構わないと思うんですが、 そこんとこがわからないんですよ。一般的な座標だとおかしいんですけどね。

全文を見る
すると、全ての回答が全文表示されます。
  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

要は原点を左下に置いてyの正が↑方向になるようにしなさい、ということでしょう。 > 改善の方法として2つありますが オフセットを与える方法でない、もうひとつの方法はなんですか?

zaqwe
質問者

補足

(1)原点の位置を変更する (2)座標の位置をずらす(今回の方法) だと考えますが、他にもあるかもです

全文を見る
すると、全ての回答が全文表示されます。
  • arain
  • ベストアンサー率27% (292/1049)
回答No.1

座標の指定を外部入力とか、プログラム内部で初期値として持つということなら、 座標の指定はあくまでも符号付きでやれっていうことじゃないのかな? であれば、入力する際に(80,80)ではなく、(-20,20)で入力して表示する方法を考えろって意味になるけど、 前提としている >しかし講師の方はy座標の符号を変える必要があると言いました。 意味が質問文からだとよくわからない。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 座標上の確率

    座標平面上に動点P、Qがあり、独立に動く 各々の点は1秒ごとに、x軸の正の向き、x軸の負の向きおよびy軸の正の向きのいずれかに1だけ進む その確率はx軸の正の向きと負の向きにはそれぞれ1/4、y軸の正の向きには1/2である はじめに動点Pは原点に、動点Qは点(2、0)にあるとする 3秒後にPとQが同じ位置にある確率を求めよ とりあえずP、Qが接するのが(-1,0)、(0,1)、(1,0)、(1,2)、(2,1)、(3,0)なのは分かったのですがここからが分かりません 教えてください

  • photoshopのガイド線の座標

    photoshopのガイド線(X,Y)の座標は、定規の原点(0,0)を変えたとしても キャンバスの左上を原点としたものになってしまいます。 これを左上からではなく任意の場所からに変えることは可能でしょうか?

  • Illustratorの座標について

    Illustrator CS5にてweb用の画像を作成しています。 定規を表示させて、x,yともにアートボードの左上を「0」にしているつもりなのですが、 ぴったり左上に配置したオブジェクトの座標を確認するとx,yともに「-36px」となっています。 これを(0,0)とするには、どのようにしたら良いのでしょうか?

  • UCS座標の回転について

    AutoCAD LT2016を使用しています。 水平垂直でない図形(45度などに傾いた図形)に対して作図を行う場合よく、UCS座標を、ワールドでなくオブジェクトを選択して、作図したい傾いた線分などを選択して、座標を回転させるのですが。 下記のURLのようなイメージです。 http://www.g-hokuto.jp/autocad/auto007002.html 添付した画像のように一発で、思い描いた通りの座標になればいいのですが、たいがいはX軸とY軸が逆転していたり、軸の正負の向きが逆転していたり、4通り?の座標のいずれかがおみくじのようにランダムに表れてしまいます。 そういう時は添付した画像のように線分で四角形を仮に書いて、それぞれの線分を何度もクリックして望んだ座標の向きになるまで何度もコマンドを繰りかえしています。 確実にUCS座標を思った向きにする方法。またはX-Y軸だけ入れ替えるコマンドX軸(Y軸)の正負の向きだけ変えるコマンドなどありますでしょうか。

  • 楕円上の座標を求める

    原点(0, 0) 幅x 高さy の楕円上で、原点から角度シータの位置にある座標を知りたいです。どのように計算すればよいのでしょうか? あるいは、楕円をある角度で等分した場合のそれぞれの座標の算出方法も教えてください。

  • ウィンドウハンドルの座標を調べることはできますか?

    VB6環境です 様々なブラウザに対してフォーカスさせずにクリック操作をさせたいと考えています 現在、一応それは完成しました しかし、ブラウザを画面左上に置いた(top座標=0、left座標=0)場合です ブラウザの位置がどこにあろうとクリックさせたいのですが、クリック座標の指定が ゲットしたウィンドウハンドルをもつオブジェクトの原点座標を原点として指定するため、 ブラウザを一番左上に持ってこないと動作してくれません わかりにくい説明ですが、知りたいことは  「任意のブラウザの中のコンテンツを表示する領域(このウィンドウハンドルはゲットできました)の   原点座標をVB6にて取得したい」 ということです よろしくお願いします

  • Photoshopの座標系を変更したい

    Photoshopのデフォルトの座標系は、絵の左上が原点になっていますが、これを画面中央が原点に変更したいと思ってます。 このようなことはできるのでしょうか? ご存じでしたら具体的な操作方法を教えてください。 よろしくお願いします。

  • 円弧の中心座標

    数日前、下記課題がありました。とても興味を持ってこの課題と 回答を眺めていましたが、下記課題中で 円弧Mの中心座標が 原点(0,0)ではなく 座標値(X0,Y0)で与えられた 場合、円弧Nの中心座標値(A,B)はどのように示されますでしょうか? これが大変難しくて手に負えません。 --------------------------------------------------------------- 円弧M (中心座標 (0,0) 左端点A 座標(X1,Y1)) が与えられています。今、この円弧の左上方向に点B 座標(X2,Y2) が与えられているとき、 点Bを通り点Aで円弧Mの接する円弧Nの中心座標を求める方法。

  • y座標がわかりません…

    物理の問題なのですが y | | | |__________x このようにx,y座標軸上に壁があり原点から壁までの距離はlです(壁はy軸と平行です)。左下の原点Oから45°で壁に小球を√2voで打ち出します。反発係数は1/2です。 <問題> 壁に跳ね返ったあとの小球の座標を、衝突後の経過時間Tを用いて表せ。ただし小球はまだ地面についてないものとする。なお、はね返り係数が一般にeのとき、衝突直後の速度のx成分は直前のそれの-e倍となり、y成分は衝突直前と衝突直後とで変化しない。 x座標の方は求まるのですが、y座標がどうしてもよくわかりません。 答えは「l-gl^2/2vo^2+(vo-gl/vo)T-1/2gT^2」になります。 答えの後半部分(Tを含む部分)が何故正負がこのようになるのかがわかりません。自分は何度解いても同符号になってしまいます…。 教えてください!お願いします!

  • 図面の座標系

    お世話になります 各種図面の座標系に関して、用途毎の基準点を教えていただけないでしょうか もしくは、一覧のサイト等ございましたら教えてください。 例 建築(プラント系) 左上原点で、X:右方向 Y:下方向 Z:上方向 モデリング 左下原点 X:右方向 Y:上方向 Z:上方向 地図 北上 土地・・・? 建築(住宅系)・・・?