2

ポリゴンをスケーリングする必要があります。

次のように書く

Qt コード:

QPolygonF qpf=QPolygonF(QPolygon(4,points));
QTransform trans;
trans=trans.scale(1.5,1.5);
QPolygonF qpf2=trans.map(qpf);
path.addPolygon(qpf2);

ポイントについて:

Qt コード:

  static const int points[8] = {
    10, 80,
    20, 10,
    80, 30,
    90, 70
    };

---15,120-- ---30,15-- ---120,45-- ---135,105-- を生成します

したがって、それもわずかに移動します。

中心からスケーリングする方法はありますか?たとえば、形状の原点は、スケーリング後に同じポイントにする必要があります。組み込みの方法がありますか、またはスケーリングするためにすべてのポイントを再度計算する必要がありますか? ありがとう

4

1 に答える 1

3

現在、「ワールド」座標系の座標に対してスケールを適用しています。これは、あなたが見ている行動を説明しています。それらをローカルまたは「オブジェクト」座標系に適用したい。

あなたが望むものを達成するには、ポリゴンを変換して、その中心(またはあなたが言うように形状の原点)が座標系の原点に整列する(またはむしろ「なる」)ようにする必要があります。次に、必要なスケールを適用し、その後、最初の翻訳の逆を適用します。

于 2011-08-01T14:47:27.607 に答える