ポリゴンの描き方とCGPath?
-
20-09-2019 - |
質問
してい読書スの文書化しなimmediatly明確にご来場いただいた多角形を描画用CGPath.すべての思いがCGPath周辺のこのようなもの:
__
\ \
\ \
\__\
え方を明記してくださいスニペットかるのか?
またいCGPathContainsPointを助けてくれる場合には内部でパス?, いずれの経路において、固体図
またどのようにしたいので移動のcgpathす。このと変化するようなもの原点でcgrect?
お願い致します。
-Oscar
解決
あなたはこのようにそれを行う必要があります:
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1.0);
// Draw them with a 2.0 stroke width so they are a bit more visible.
CGContextSetLineWidth(context, 2.0);
for(int idx = 0; idx < self.points.count; idx++)
{
point = [self.points objectAtIndex:idx];//Edited
if(idx == 0)
{
// move to the first point
CGContextMoveToPoint(context, point.x, point.y);
}
else
{
CGContextAddLineToPoint(context, point.x, point.y);
}
}
CGContextStrokePath(context);
}
ここで注意し、ポイントを使用して、ポリゴンを描画するポイントの配列です。だから、のような円形のパスでなければなりません:あなたは、あなたは、配列(x1, x2, x3)
に合格しなければならないポイント(x1, x2, x3, x1)
の三角形を描いている。
この情報がお役に立てば幸いです。
他のヒント
このはCGPathにを使用して三角形を作成する方法の例がある、あなただけのポイントを配置する必要があります。
var path = CGPathCreateMutable()
CGPathMoveToPoint(path, nil, 0, 0) //start from here
CGPathAddLineToPoint(path, nil, 20, 44)
CGPathAddLineToPoint(path, nil, 40, 0)
CGPathAddLineToPoint(path, nil, 0, 0)
//and to use in SpriteKit, for example
var tri = SKShapeNode(path: path)
var color = NSColor.blueColor()
tri.strokeColor = color
tri.fillColor = color
この結果である
Appleの QuartzDemo のアプリケーションを参照してください。これは、これを行うためのコードだけでなく、他の多くのクォーツ描画機能を持っています。
Draelachの 回答更新 迅速かつ4:
let path = CGMutablePath()
path.move(to: CGPoint(x: 0, y: 0))
path.addLine(to: CGPoint(x: 20, y: 44))
path.addLine(to: CGPoint(x: 40, y: 0))
path.addLine(to: CGPoint(x: 0, y: 0))
let tri = SKShapeNode(path: path)
iPhoneにスタンフォード大学のCS193Pクラスは、正確に何をしたいかもしれませんHelloPolyと呼ばれるプロジェクトを持っていた - <のhref =「http://www.stanford.edu/class/cs193p/cgi-bin/drupal/」のrelを参照してください= 「nofollowをnoreferrer」>スペックのクラスのホームページし、それが実装された方法についてのビデオを参照してください(と割り当てをした人からの解決策をグーグル)。