私は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. 頂点とエッジのモデルスキーマ
- 2. 複数の頂点間のOrientDbエッジ
- 3. パイソン - グラフを実装し、エッジと頂点
- 4. Gremlin - 頂点を選択し、単一のクエリで新しい頂点とエッジを作成します
- 5. データスタックスグラフの同じcsvファイルからエッジと頂点を作成
- 6. OrientDBで頂点を作成してエッジを作成する方法
- 7. AWS上のタイタン - エッジと頂点のドロップを防止する
- 8. 同時に、Pythonグラフツールのグラフ、頂点、エッジをサブクラス化する
- 9. mxGraphの頂点にエッジを固定する
- 10. 頂点とエッジのセットからASCIIグラフを作成するツールですか?
- 11. Gremlinクエリーでエッジが2である頂点を取得する
- 12. JanusGraphやGremlinの頂点の「プロパティ」として頂点とそのエッジの数を「結合する」方法は?
- 13. グラフデータストア:200k頂点とエッジを持つグラフデータ構造をキャッシュする
- 14. Orientdbで頂点を取得してエッジを作成する方法
- 15. OrientDB ETL:重複した頂点をスキップしてエッジを作成する方法
- 16. 頂点の頂点を頂点で4.2で検証する
- 17. OrientDB CSVから頂点とエッジをロードする
- 18. 頂点を反復せずにエッジにアクセスする
- 19. maxの他のすべての頂点に到達できる最小限の頂点のセット。 1つのエッジ
- 20. OrientDB複数のエッジから一意の頂点を選択
- 21. 2つの頂点ID間のエッジIDを照会
- 22. 関連のない2つの頂点の間にエッジを追加する
- 23. UWPで頂点とエッジを持つグラフを表示
- 24. AQL Arango - エッジを使用して頂点と近傍を取得
- 25. TinkerPop 3にエッジがないすべての頂点を見つけるには?
- 26. JGraphX:頂点にエッジ端子を再配置
- 27. 頂点シェーダ対頂点
- 28. エッジが接続されていない頂点でDepth-First Traversalを実行
- 29. バリアントサイズの頂点バッファを作成する
- 30. 頂点とエッジを持つグラフを作成するための良いツールは何ですか?