문제

나는 문서를 통해 읽고 있지만 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

이것이 결과입니다

Triangle with CGPath

애플을 참조하십시오 쿼츠 데모 신청. 이 작업을 수행하기위한 코드와 다른 많은 석영 드로잉 기능이 있습니다.

드레 락 답변이 업데이트되었습니다 스위프트 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에 대한 Stanford의 CS193P 클래스는 Hellopoly라는 프로젝트가 있었는데 정확히 당신이 원하는 것입니다. 수업 홈페이지 사양의 경우, 구현 방법에 대한 비디오 (및 과제를 수행 한 사람들의 Google 솔루션)에 대한 비디오를 참조하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top