アプリ版:「スタンプのみでお礼する」機能のリリースについて

 座標が左上基準になっています。

 キャンバス座標 x:1000 y:1000 の位置に  四角形 400 × 200 を 配置すると
 x:1000 y:1000のままですが、ここから 四角形を縮小して、角度を変えると 
 左上の座標の位置が変わってしまいます。

 四角形の左上の座標を求める式と、
 できればその四角形の中心座標を求める式を教えてください。


 

A 回答 (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は上記の計算結果の小数点以下を四捨五入して整数化して用います。
 
    • good
    • 0
この回答へのお礼

ありがとうございます!

お礼日時:2013/10/12 14:30

キャンバス座標とはどういう座標ですか?


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

以上が、はっきりしていないので、補足にお書き下さい。

この回答への補足

説明が悪くすみません。

キャンバス座標とは例えばディスプレイ(モニタ)とすると
モニタの原点は左上が(0、0)になると思います。

この位置から
右に1000ピクセル、下に1000ピクセルの位置(x:1000 y:1000)に
四角形(width:400ピクセル×height:200ピクセル)を置きます(書きます)

この四角形の中心を基準に?%縮小して、?度回転した場合の
四角形の左上の座標を取得したいのです。

最初に置いた四角形の座標の中心(x:1200,y:1100)は変わりませんが、
四角形の縮小率(1~100%)、角度(0度~360度)はいろいろ変化させたいと
思っています。

宜しくお願い致します。

補足日時:2013/09/15 09:35
    • good
    • 0
この回答へのお礼

ありがとうございます!

お礼日時:2013/10/12 14:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!