Использование основного графика для отображения выбранного периода времени по кругу - PullRequest
0 голосов
/ 30 июня 2011

Я занимаюсь разработкой приложения, в котором я должен показать выбранное время на изображении с часами. Описание:- То, что я точно хочу сказать, у меня есть изображение круга. Теперь в соответствии с выбранным временем я хочу, чтобы эта часть была закрашена другим цветом на моем круговом изображении. Пожалуйста, помогите мне в этом. Я застрял здесь.

Я приложил изображение, которое будет описывать больше того, что я точно хочу сделать. Я также попытался сделать это с помощью круговой диаграммы, но область, показывающая, не дает надлежащего времени. Пожалуйста, пожалуйста, помогите мне.

enter image description here

На этом изображении показано время с 1:00 до 6:00. Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 30 июня 2011

За то, что вы хотите выше (без использования coreplot). Поместите этот код в соответствующий метод drawRect / drawInContext.

Не в Mac, поэтому не уверен на 100%, что он скомпилируется. Должно быть близко. Также может быть на 90

#include <math.h>

CGFloat radius = 100;
//CGFloat pi = 3.1415927; //comes for free in math.h

//draw underlying circle;
UIBezierPath *basecircle = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0,0,radius*2,radius*2)];
[[UIColor blackColor] set];
[basecircle fill];

CGFloat starttime = pi/6; //1 pm = 1/6 rad
GFloat  endtime = pi;  //6 pm = 1 rad

//draw arc
CGPoint center = CGPointMake(radius,radius);
UIBezier *arc = [UIBezierPath bezierPath]; //empty path
[arc moveToPoint:center];
CGPoint next;
next.x = radius + radius * sin(starttime);
next.y = radius + radius * cos(starttime);
[arc moveToPoint:next]; //go one end of arc
[arc addArcWithCenter:center radius:radius startAngle:starttime endAngle:endtime clockwise:YES]; //add the arc
[arc moveToPoint:center]; //back to center

[[UIColor yellowColor] set];
[arc fill];
...