2014-02-14 7 views
1

나는 내 기본 페인트 응용 프로그램에서 사용자 입력을 끌기 위해 다음 코드를 사용하고 : 큰 크기의 작은 라인 폭에서 잘 작동하지만석영 선형 보간법 특정 라인에서 남았습니다은 너비 간다

CGContextRef drawSpace = CGLayerGetContext(currentLayer); 

CGContextBeginPath(drawSpace); 

CGContextMoveToPoint(drawSpace, [[self.currentStroke objectAtIndex:0]pointValue].x, [[self.currentStroke objectAtIndex:0]pointValue].y); 

for (NSValue *v in self.currentStroke) { 
    CGContextAddLineToPoint(drawSpace, [v pointValue].x ,[v pointValue].y); 
    /* CGContextMoveToPoint(drawSpace, [v pointValue].x ,[v pointValue].y); 
The link I got only showed this called when index = 0, so I dummied it out. Left in, 
it produces the original jagged image behavior */ 
} 


CGContextClosePath(drawSpace); 
CGContextSetStrokeColorWithColor(drawSpace, [[NSColor blackColor]CGColor]); 
CGContextSetLineWidth(drawSpace, self.BrushSize); //Sets the brush size 
CGContextStrokePath(drawSpace); //Strokes the path to the layer 

이미지는 아래 그림과 같이 나타납니다. 각도와 관련이 있다는 것을 알고 있지만이 문제를 해결하는 방법을 모릅니다. 누군가는 나가 어떤 크기든지에 명확한 치기를 얻을 수있는 방법을 알고 있는가? 당신이 당신의 이미지에 표시되는 내용

My drawing

답변

1

코어 그래픽 단일 선 세그먼트를 잇달아 그리기의 결과입니다. 따라서 선의 모서리는 당연히 그려지지 않으며 큰 penWidth에 그와 같이 표시됩니다.

할 일은 모든 세그먼트 그리기를 완료 한 후에 만 ​​선을 그립니다.. 이 경우 런타임에서 모서리를 처리합니다.

구현 방법에 대한 자세한 내용은 this question을 참조하십시오.

+0

소리가 좋지만 사용자가 마우스로 그림을 그리면서 무엇을 표시해야합니까? – PopKernel

+0

글쎄, 내가 너라면, 사용자가 그린 한 점을 저장하고 마우스가 움직일 때마다 전체 선을 다시 그리게된다. 그렇게하면 원하는 결과를 얻을 수 있습니다. – insys

+0

나는 그것을 시도했지만 작동하지 않습니다. 어쩌면 내가 잘못하고있는거야? 질문을 업데이트하겠습니다 ... – PopKernel

관련 문제