2011-12-06 2 views
0

Objective-C에 새로운 것이므로 나와 함께하시기 바랍니다. 나는 문자의 모양을 추적하면서 화면에 그려진 사용자가있는 아이폰 앱을 만드는 과정에있다.Objective-C로 제약 내에서 그리는 방법

지금까지 TouchesBegan/Moved/Ended와 포인트/포인트 위치를 사용하여 화면의 버퍼로 가져 왔습니다. 나는 또한 그린 라인을 사용하여 화면에 문자 "A"는 좌표

- (void)drawRect:(CGRect)rect 
{ 
    //letter to draw on 
    CGContextRef c = UIGraphicsGetCurrentContext(); 

    CGContextSetLineWidth(c, 12.0); 

    CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB(); 

    CGFloat components[] = {0.0, 0.0, 1.0, 1.0}; 

    CGColorRef color = CGColorCreate(colorspace, components); 

    CGContextSetStrokeColorWithColor(c, color); 
    CGContextSetLineCap(c, kCGLineCapRound); 
    CGContextSetLineJoin(c, kCGLineCapRound); 
    //1 
    CGContextMoveToPoint(c, 60, 400); 
    //2 
    CGContextAddLineToPoint(c, 160, 100); 
    //3 
    CGContextAddLineToPoint(c, 260, 400); 
    //4 
    CGContextMoveToPoint(c, 100, 280); 
    //5 
    CGContextAddLineToPoint(c, 220, 280); 

    CGContextStrokePath(c); 
    CGColorSpaceRelease(colorspace); 
    CGColorRelease(color); 
} 

내가 알아 내려고 노력하고 다음 단계는 사용자가 좌표 (또는 제한)의 외부 간 때 참조하는 방법입니다 화면에있는 글자. 나는 포인트와 라인 사이의 최단 거리를 찾아야 만한다는 것을 알고 있지만 어떻게 해야할지 모른다.

필자도 자바로 (필자가 더 잘 알고있는 것처럼) 필자의 글을 써 보았지만 정확한 단계를 취하는 지에 대해서는 여전히 확신하지 못했다.

정적 double ERROR_BOUNDS = 0.0; double dRes = lines.distanceToX (point.location.x, point.location.y);

if (dRes>= ERROR_BOUNDS) 
{ 

은 필자 정말이 벽돌 벽을 쳐서 사람이 무엇을 명확히 할 필요하면 내가 더 많은 코드를 게시합니다. 어떤 도움이라도 대단히 감사 할 것입니다.

답변

1

CGPath 논리를 사용하여 경로를 개체로 만든 다음 CGPathContainsPoint를 사용하여 터치가 경로에 있는지 여부를 평가할 수 있습니다.

+0

Thanks JS! 나는 그것이 일하고있어, 최종적으로 수학에 전체 하중을 가해 야했다. :) – PriorH