• ベストアンサー

角度を変えて、縮小した場合の中心座標の求め方

 座標が左上基準になっています。  キャンバス座標 x:1000 y:1000 の位置に  四角形 400 × 200 を 配置すると  x:1000 y:1000のままですが、ここから 四角形を縮小して、角度を変えると   左上の座標の位置が変わってしまいます。  四角形の左上の座標を求める式と、  できればその四角形の中心座標を求める式を教えてください。  

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

  • ベストアンサー
  • info22_
  • ベストアンサー率67% (2650/3922)
回答No.2

No.1です。 方針として、まず普通のXY直交座標系で考え、その後、キャンバス座標系に変換するやり方で行ます。 その際、キャンバス座標系では小文字のx,y,普通のXY直交座標系では大文字のX,Yを使って区別します。普通のXY座標系の原点(0,0)を長方形の中心にとると、(X,Y)と(x,y)の関係は  X=x-1200,Y=1100-y となります。 縮小割合をa%とすると  U=aX/100, V=aY/100 原点のまわりθだけ左回転すると点(U,V)は点(S,T)に移動します。  S=Ucosθ-Vsinθ  T=Usinθ+Vcosθ 長方形の左上の点A(x,y)=(1000,1000)は(X,Y)に変換すると  (X,Y)=(200,100) これをa%に縮小すると  (X1,Y1)=(aX/100,aY/100)=(2a,a) θ°だけ左回りに回転移動すると  (X2,Y2)=(X1cosθ-Y1sinθ,X1sinθ+Y1cosθ)  =(2acosθ-asinθ,2asinθ+acosθ) これをキャンバス座標系に戻せば  (x,y)=(1200+X2,1100-Y2) =(1200+2acosθ-asinθ,1100-2asinθ-acosθ) 0°≦θ≦360°、a[%](1≦a≦100) キャンパス座標の座標値がピクセルなら、(x,y)のx,yは上記の計算結果の小数点以下を四捨五入して整数化して用います。  

ekekojr
質問者

お礼

ありがとうございます!

その他の回答 (1)

  • info22_
  • ベストアンサー率67% (2650/3922)
回答No.1

キャンバス座標とはどういう座標ですか? 原点(0,0)の位置と横軸の正の方向、縦軸の正の方向はどうなっていますか? 四角形をABCDとすると4つの頂点の座標はどうなりますか? 角度を変えるとは、どこから測った角度ですか?回転する中心座標と角度の正の向きはどうなっていますか? 縮小はどの座標点を中心に縮小するのでしょうか? 回転・縮小の回転の中心座標と縮小座標と縮小の割合はどうなっていますか? 以上が、はっきりしていないので、補足にお書き下さい。

ekekojr
質問者

お礼

ありがとうございます!

ekekojr
質問者

補足

説明が悪くすみません。 キャンバス座標とは例えばディスプレイ(モニタ)とすると モニタの原点は左上が(0、0)になると思います。 この位置から 右に1000ピクセル、下に1000ピクセルの位置(x:1000 y:1000)に 四角形(width:400ピクセル×height:200ピクセル)を置きます(書きます) この四角形の中心を基準に?%縮小して、?度回転した場合の 四角形の左上の座標を取得したいのです。 最初に置いた四角形の座標の中心(x:1200,y:1100)は変わりませんが、 四角形の縮小率(1~100%)、角度(0度~360度)はいろいろ変化させたいと 思っています。 宜しくお願い致します。

関連するQ&A