Foren: Offene Diskussion (Thread #28836)

画像座標変更について (2011-03-09 10:08 by (del#46198) #56182)

yoyaさんはじめまして。
いつも使わせて頂いております。

画像の座標変更を行う際にapplyShapeRectFactorとapplyShapeMatrixFactorを用いて行っておりますが、うまく座標変更が出来ない場合がありました。

swf_shape_record.cを確認したところ、swfの座標値を20倍していない個所がありましたのでご報告します。

■swf_shape_record.c
162~167行目
------------------------------------------------------------------------
- edge->shape_x = (edge->shape_x - min_x) * scale_x + min_x + trans_x;
- edge->shape_y = (edge->shape_y - min_y) * scale_y + min_y + trans_y;
+ edge->shape_x = (edge->shape_x - min_x) * scale_x + (min_x + trans_x) * SWF_TWIPS;
+ edge->shape_y = (edge->shape_y - min_y) * scale_y + (min_y + trans_y) * SWF_TWIPS;

- setup->shape_move_x = (setup->shape_move_x - min_x) * scale_x + min_x + trans_x;
- setup->shape_move_y = (setup->shape_move_y - min_y) * scale_y + min_y + trans_y;
+ setup->shape_move_x = (setup->shape_move_x - min_x) * scale_x + (min_x + trans_x) * SWF_TWIPS;
+ setup->shape_move_y = (setup->shape_move_y - min_y) * scale_y + (min_y + trans_y) * SWF_TWIPS;
------------------------------------------------------------------------

※もしかしたら、上記コードのSWF_TWIPSで乗算する対象が適切でない可能性もあります。

RE: 画像座標変更について (2011-03-09 17:18 by yoya #56190)

御指摘ありがとうございます。
おっしゃる通り該当のコードの計算は TWIPS 単位ですが、
ユーザから受け取った値(論理pixel単位)を 20 倍せずにそのまま使う為、
移動距離が期待するより短くなってしまいます。
次回の 0.33 リリースで対応します。
Reply to #56182

RE: 画像座標変更について (2011-03-18 18:17 by btyn #56290)

早速ご対応いただき、ありがとうございます!
Reply to #56190