私はUIBezierPathを使ってポリゴンを描画しました。私はその頂点を湾曲させる必要があります。どうやってやるの。私は[path addLineToPoint:CGPointMake(xPoint、yPoint)]メソッドを使って線を描きました。私は使用しようとしました [path addCurveToPoint:self.nextPoint controlPoint1:self.controlPoint controlPoint2:self.controlPoint]; 運がない。どんな助けでも大歓迎です。ポリゴンカーブの鋭いエッジ(頂点)を作る
0
A
答えて
1
それはあなたの意図が何であるかに依存します。カーブがすべての頂点を通過する必要がある場合は、Catmull-Romスプラインなどの異なるスプラインを使用する方がよいでしょう。これらは、カーブのすべてのコントロールポイントを通過するのに役立ちます。ベジエ曲線にはこのプロパティはありません。代わりに、曲線は制御点の凸包によって境界を定められます。また、制御点が互いに非常に接近しているときは、自己交差を避けるために、任意に高次のスプラインを使用する必要があることにも注意してください。
すでに適切に動作しているコントロールポイントが時計回りまたは反時計回りの順番になっている場合、次のコードは、ポイントを接続する閉じたCatmull-Romスプラインを評価して描画します。
:に結果の#define SMOOTHNESS 20
for(NSUInteger i = 0; i <= pointCount; ++i) {
CGPoint p0 = points[(i + 0) % pointCount];
CGPoint p1 = points[(i + 1) % pointCount];
CGPoint p2 = points[(i + 2) % pointCount];
CGPoint p3 = points[(i + 3) % pointCount];
for(CGFloat t = 0; t <= 1; t += 1.0/SMOOTHNESS) {
CGFloat t2 = t*t, t3 = t * t * t;
CGFloat x = 0.5 *((2 * p1.x) + (-p0.x + p2.x) * t + (2*p0.x - 5*p1.x + 4*p2.x - p3.x) * t2 + (-p0.x + 3*p1.x- 3*p2.x + p3.x) * t3);
CGFloat y = 0.5 *((2 * p1.y) + (-p0.y + p2.y) * t + (2*p0.y - 5*p1.y + 4*p2.y - p3.y) * t2 + (-p0.y + 3*p1.y- 3*p2.y + p3.y) * t3);
if(i == 0 && t == 0)
CGContextMoveToPoint(context, x, y);
else
CGContextAddLineToPoint(context, x, y);
}
}
CGContextStrokePath(context);
関連する問題
- 1. 頂点とエッジのセットからASCIIグラフを作成するツールですか?
- 2. 頂点の頂点を頂点で4.2で検証する
- 3. maxの他のすべての頂点に到達できる最小限の頂点のセット。 1つのエッジ
- 4. 頂点シェーダ対頂点
- 5. 頂点とエッジを持つグラフを作成するための良いツールは何ですか?
- 6. 頂点からの頂点バッファ
- 7. 無向グラフのプロットは、エッジの一端のエッジと頂点の間のギャップを示します。
- 8. テクスチャデータを頂点シェーダの頂点データとして解釈する
- 9. graphXは複数のエッジと頂点をグラフ化できませんか?
- 10. 抽出鋭い三角形メッシュからエッジとその輪郭とOpenGL
- 11. XNA - 頂点ストリーム?
- 12. 非ハッシュタイプ:「頂点」
- 13. グラフの頂点のカバー - 同程度の頂点の混乱
- 14. 頂点シェーダのテクスチャルックアップ
- 15. 2つの頂点間のエッジを見つける正しい方法は何ですか?
- 16. 最小頂点カバー
- 17. 頂点シェーダとフラグメントシェーダ
- 18. 6カラーグラフ頂点カラーアルゴリズム
- 19. ブーストグラフIは、(各INTは頂点インデックスを表す)対(INT、INT)エッジの組から無向エッジにグラフを定義しようとしているインデックス
- 20. OpenGLの頂点のレイアウト
- 21. グラフの頂点数のシーケンス
- 22. シェーダシェーダのユニティシェーダの頂点フォーマット
- 23. C++の頂点のキュー
- 24. 頂点バッチクラスとJavaスレッドの違い
- 25. 頂点ブーストグラフトラバーサルを選択
- 26. CGAL 2D Delaunay三角形分割:頂点のIDのペアとしてエッジを取得する方法
- 27. Unity/CG:頂点シェーダのスケールオブジェクト
- 28. Android OpenGLの頂点配列
- 29. ポリゴン頂点の最小化
- 30. OpenGL:頂点インデックスバッファの問題