Я новичок в Objective-C, поэтому, пожалуйста, потерпите меня.Я нахожусь в процессе создания приложения для iPhone, в котором пользователь рисовал на экране, отслеживая форму буквы.
Пока у меня есть расположение TouchesBegan / Moved / Ended и точка / точка для рисования в буферена экране.Я также нарисовал букву «А» на экране, используя координаты линии:
- (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);
}
Следующий шаг, который я пытаюсь выяснить, - это как увидеть, когда пользователь вышел за пределы координат (или ограничений)) буквы, которая находится на экране.Я знаю, что должен найти кратчайшее расстояние между точкой и линией, но я не знаю, как это сделать.
Я также пытался написать некоторые из них на Java (поскольку я более знаком с ним), но я все еще не уверен, предпринимаю ли я правильные шаги.
static double ERROR_BOUNDS =0,0;double dRes = lines.distanceToX (point.location.x, point.location.y);
if (dRes>= ERROR_BOUNDS)
{
Я действительно ударил по кирпичной стене с этим, и я выложу больше кода, если кому-то понадобитсяэто прояснить что-нибудь.Любая помощь будет высоко ценится.