ここがまだ賑やかだった頃にもわりとよく見た気がするけど…
概念的に複数種類の座標系を扱うプログラムを書いているときに
ある値がどの座標系での値なのか?というのを書いてる本人が把握できていないパターン!
に久々に出くわしたぜ.
最終的に描画する際の座標系(いわゆる[pixel]な世界)を除いては,
自分自身が勝手に(都合よく,必要に応じて)作り出した物なハズなのに,その話を自身でわかってないっていう.
そういうレベルでこういう場所で質問してる状況ってのは割と不幸だなあ,とか思う.
他者から「自分自身が勝手に(都合よく,必要に応じて)作り出した仕組み」に基づいた話が成されるとは限らない,という点において.
少なくとも自分で考えてたのとは全く異なる仕組みの話に誘導されてしまわないように強い意志を持つ必要があると思う.
そうじゃないと,何が正しくて何が違うのかがわからない世界に連れていかれてしまうことになるし,
何が正しくて何が違うのかを決める権限すら知らぬ間に持っていかれてしまう.
こういう場所で質問するには相当な力量が要るよね
Re: こういう場所で質問するには相当な力量が要るよね
大元の質問者のコードだと,座標値に関する変数が X と Y で別々の int 型になっていたが,
ここでは Position という型を導入している.
これは単に「XとYがまとめて扱えて便利だね!」とかいう話ではなくて,「ゲームのロジック/データの世界の座標値」を意味する型を定義したということ.
他方,描画の世界で用いる座標値の型は cv::Point であり,明確に型が異なっている.
Position と cv::Point は,どちらも「2次元の座標」であるが,意味的には全く別のものである.
……っていうことを,このように「型自体を異ならせる」ことで表現すれば,さすがにデータの意味を取り違えることもあるまい.
ここでは Position という型を導入している.
これは単に「XとYがまとめて扱えて便利だね!」とかいう話ではなくて,「ゲームのロジック/データの世界の座標値」を意味する型を定義したということ.
他方,描画の世界で用いる座標値の型は cv::Point であり,明確に型が異なっている.
Position と cv::Point は,どちらも「2次元の座標」であるが,意味的には全く別のものである.
……っていうことを,このように「型自体を異ならせる」ことで表現すれば,さすがにデータの意味を取り違えることもあるまい.