Рисование диаграммы с градиентом в Objective C - PullRequest
0 голосов
/ 20 июля 2011

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

        CGContextSaveGState(c);
        CGContextAddPath(c, CGContextCopyPath(c));
        CGContextClip(c);
        CGContextDrawLinearGradient(c, g, previousPointOfIntersection, intersectionPoint, 0);
        CGContextRestoreGState(c);

каждый раз, когда линия пересекает ось X. Однако проблема в том, что градиент заполняет весь вид между предыдущей точкой пересечения и текущей.

Является ли это правильным способом рисования градиента для части обзора, заключенной в линии?

Я был бы очень рад услышать любые предложения относительно моей проблемы:)

P.S. вот код моего класса http://pastebin.com/wYiHkuVi

1 Ответ

1 голос
/ 20 июля 2011

Я бы сказал, что у вас нет пути в контексте, который, как вы думаете, у вас есть.Если вы «погладили» путь к вашему графику, он израсходован.

Замените свой путь добавления на:

  CGContextAddEllipseInRect(c, self.bounds);

, чтобы увидеть, происходит ли какое-либо отсечение.

Если это так, то вам нужно перестроить свой путь здесь вместо кода AddPath / Ellipse.

...