スレを勃てるまでもないC/C++の質問はここで 4
■ このスレッドは過去ログ倉庫に格納されています
0426デフォルトの名無しさん
2008/11/30(日) 20:07:39ユーザーがランダムな順番で入力した四角形の4つの頂点座標のCPoint型(x,y座標を保持)の変数の中から
四角形の左上の頂点がどれかを判定したいのですが
うまい方法が思いつきません。
1番左 かつ 1番の上の座標を求めれば良いだけジャン…と思っていたんですが
//CPoint cp0, cp1, cp2, cp3には既にx,y座標が代入済みとする
//四角形の左上座標がどれか4つの中からを決める
CPoint tmp;
tmp = cp0;
if ( tmp.x >= cp1.x ) if ( tmp.y >= cp1.y ) tmp = cp1;
if ( tmp.x >= cp2.x ) if ( tmp.y >= cp2.y ) tmp = cp2;
if ( tmp.x >= cp3.x ) if ( tmp.y >= cp3.y ) tmp = cp3;
return tmp;//左上座標を返す
長方形だとこれで問題なさそうなんですが、例えば極端に歪んだ平行四辺形とかだと
左から2〜3番目の頂点が左上頂点だったり(例:上底、下底が水平で下底が思い切り左に寄っている)
上から2〜3番目の頂点が左上頂点だったり(例:右辺、左辺が垂直で右辺が思い切り上に寄っている)
等のケースに対応できません。
■ このスレッドは過去ログ倉庫に格納されています