0 ベクタパス作成ツール 3
190719
動作の構想
- マウスオーバーでパスを青、ポイントも描画、ただしコントロールポイントは描画しない
pselected : -1 - ポイント位置にマウスが来たらポイントを赤くしてコントロールを二本描画
違うポイントに移るまでその状態を維持
pselected >= 0 <--- pselected が -1 -2 になっても現在値を維持する
±1 でも現在値を維持する - ポイント位置でクリックでポイント選択
クリックした位置のヒット判定が0以上なら pmoving=それ
変数は二つ必要になる
サブクラス
- QPainterPath オブジェクトの派生クラスを作る
- ポイントのrectを CP 含めて全て作成する
本体の描画ルーチンからはクラスメンバとして参照させる
本体の描画ルーチンで判断して CP 以外を描画する
ヒット判定はメソッドとして呼び出す - 閉じたパスを実装
フラグを持つ、閉じた場合で0が移動したら終点も同じ座標とする - ポイント移動メソッドは既にあるが独自に実装して、コントロールポイントを含めた平行移動やシンメトリ移動を実装する
パスの平行移動
- 必要かな??
void QPainterPath::translate(qreal dx, qreal dy)
パス内のすべての要素を(dx、dy)だけ平行移動します。
コメント(0)