1

私は少し成功していますが、おそらくよりSwiftyであるNSAffineTransformことに出くわしました。AffineTransformただし、concatメソッドがないので、どのように使用しますか? 中心を中心に数回回転させた同じ小さな BezierPath を描画することを目指しています。

明らかな場合は申し訳ありません。他の人はこれが便利だと思うかもしれません。

4

1 に答える 1

0

これが私がそれを見る方法です。で描画しているNSBezierPath場合は、 でパスに適用しますmyPath.transform(using: tr)。例:

  let tr1 = AffineTransform(translationByX: 20, byY: 20)
  bez = NSBezierPath()
  // add some elements to the path here
  bez.transform(using: tr1)
  bez.stroke()

ご覧のとおり、変換は既にパスにあるすべての要素に影響しますが、その後追加された要素には影響しません。変換は累積的であり、変換を再適用するか、別の変換を適用すると、それまでに入力されたすべての要素に影響します。

AffineTransform独自のメソッドを使用して、個々のポイントまたはサイズを変換することもできます。

于 2021-03-29T20:08:42.253 に答える