Charts: рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╡реГрджреНрдзрд┐

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рдЕрдкреНрд░реИрд▓ 2015  ┬╖  44рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: danielgindi/Charts

рдХреНрдпрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдлрд┐рд▓рд┐рдк рдиреЗ MPAndroidCharts рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдерд╛?
рдЕрдкрдиреЗ рд╕рдВрд╡рд░реНрджреНрдзрди рдХреЗ рд╕рд╛рде рдЕрдм рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рд╣рдЬрд╛рд░реЛрдВ рдбреЗрдЯрд╛ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдореИрдВрдиреЗ рдЖрдИрдУрдПрд╕-рдЪрд╛рд░реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдПрдХ рддреНрд╡рд░рд┐рдд рдирдЬрд╝рд░ рдбрд╛рд▓реА рд╣реИ рдФрд░ рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рд╡рд╣ рдирд╡реАрдирддрдо рдкреНрд░рджрд░реНрд╢рди рд╕рдВрд╡рд░реНрджреНрдзрди рдХреЗ рдмрд┐рдирд╛ рдореВрд▓ MPAndroidCharts рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

рдЗрд╕реЗ рд╣рдЬрд╛рд░реЛрдВ рдЕрдВрдХ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреНрд▓рд╕ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рд╕рднреА рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдмреЗрдХрд╛рд░ рдХрд░ рджреЗрдЧрд╛ (рдЬрд┐рдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп рдФрд░ рдзрди рдХреА рдмрд░реНрдмрд╛рджреА рд╣реИрдВ)ред

enhancement help wanted

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВ iOS рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рдЪрд╛рд░реНрдЯ рдореЗрдВ 13000 рд╕реЗ рдЕрдзрд┐рдХ рд░рд┐рдХреЙрд░реНрдб рд▓реЛрдб рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди, рдЪрд╛рд░реНрдЯ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп UI рдХреЛ рдлреНрд░реАрдЬ рдХрд░ рджреЗрддрд╛ рд╣реИред рд╕рд╛рде рд╣реА, рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рддреЛ рдЪрдпрди рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред

рд╕рднреА 44 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдПрдВрдбреНрд░реЙрдЗрдб рд╡рд░реНрдЬрди рдореЗрдВ рдореВрд▓ рдкреНрд░рджрд░реНрд╢рди рдЕрдбрд╝рдЪрди рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛрдб рдХреЗ рдЕрдВрджрд░ рдХрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрдмрдВрдЯрди (рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ) рдереЗред рдореЗрдореЛрд░реА рдХреЛ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛрдб рдХреЗ рдЕрдВрджрд░ @PhilJay рдиреЗ рдЙрд╕ рдХреЛрдб рдХреЛ рдПрдХ рдмрдлрд╝рд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдкреВрд░реНрд╡- рд╕реМрдВрдкрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдЧрдгрдирд╛рдУрдВ рдХреЛ рдмрдлрд░ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪреБрдирд╛, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд╕реНрдореГрддрд┐ рдХреЛ рдЙрд╕реА рддрд░рд╣ рдкреВрд░реНрд╡ рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдВ - рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛрдб рдХреЗ рд╕рдорд╛рди рд▓реВрдк рдореЗрдВ рдкреНрд░рддрд┐рдкрд╛рджрди рдЧрдгрдирд╛рдПрдВ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЛрдб рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдирд╛ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдЖрд╕рд╛рди рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рд╣реИ рдХрд┐ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЕрдВрджрд░ рдкреНрд░рддрд┐рдкрд╛рджрди рдЧрдгрдирд╛ рдирд╣реАрдВ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рджреЛ рдмрд╛рд░ рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛрдб рдХреЗ рдЕрдВрджрд░ рд▓реВрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

Btw, рд╕реНрд╡рд┐рдлреНрдЯ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╡реИрд╕реЗ рднреА рдЬрд╛рд╡рд╛ рд╕реЗ рдмреЗрд╣рддрд░ FAR рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЙрди рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рдкреВрд░реНрд╡-рдЖрд╡рдВрдЯрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рднреА рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рд╣реЛрддрд╛ рд╣реИред

рдЗрд╕реЗ рдЧреНрд░рд╛рдлрд┐рдХ рд░реВрдк рд╕реЗ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛрдб рдореЗрдВ рдпрд╣реА рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ:

  • [рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╢реБрд░реВ рдХрд░реЗрдВ]
  • рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рд▓реВрдк
  • -- рдЗрд╕ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд░рдгреА рдЖрд╡рдВрдЯрд┐рдд рдХрд░реЗрдВ -- рдЕрдм рджреЛрдиреЛрдВ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдореЗрдВ рдкреВрд░реНрд╡ -рдЖрд╡рдВрдЯрд┐рдд
  • -- рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЕрдВрдХ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ -- _Android рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдмрдлрд╝рд░реНрд╕ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛_
  • - рдЙрди рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдВ
  • [рдкреНрд░рддрд┐рдмрджреНрдз рдкреНрд░рддрд┐рдкрд╛рджрди]

рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрд╛рд╡рд╛ рдореЗрдВ, рд╕рд╛рд░ (рдлрд╝рдВрдХреНрд╢рди, рдХрдХреНрд╖рд╛рдПрдВ, рд╡рд┐рд░рд╛рд╕рдд) рдПрдХ рдорд╣рд╛рди рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВред рдпрд╣ рд╡реНрдпрд░реНрде рдирд╣реАрдВ рд╣реИ рдХрд┐ Google рдиреЗ рд╕реНрд╡рдпрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд┐рдлрд╛рд░рд┐рд╢ рд▓рд┐рдЦреА рд╣реИ:

Be careful with code abstractions

Often, developers use abstractions simply as a "good programming practice," 
because abstractions can improve code flexibility and maintenance. 
However, abstractions come at a significant cost: 
    generally they require a fair amount more code that needs to be executed, 
requiring more time and more RAM for that code to be mapped into memory. 
So if your abstractions aren't supplying a significant benefit, you should avoid them.

рдЗрд╕реЗ рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд░рдирд╛:

  • рдЖрдк рд╣рдЬрд╛рд░реЛрдВ рдбреЗрдЯрд╛ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рдЬ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ!
  • рдореИрдВ рдлрд┐рд▓ рдХреЛ рдмрд┐рдВрджреБ рдЧрдгрдирд╛ рдХреЛ рд╡рд╛рдкрд╕ рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛ рд╕рдХреЗ ;-)

рдЖрдкрдХреЗ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдбреИрдирд┐рдпрд▓ред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рд▓реЗрдирд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред
рдореИрдВрдиреЗ рдЬреЛ рдХрд┐рдпрд╛ рд╣реИ, рд╡рд╣ рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ (рдиреАрдЪреЗ рдХреЛрдб рджреЗрдЦреЗрдВ) рдФрд░ рдкреНрд░рджрд░реНрд╢рди Android рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рддреБрд▓рдиреАрдп рдирд╣реАрдВ рд╣реИ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдХрд░реАрдм рднреА рдирд╣реАрдВ рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк iPad Mini3 рдФрд░ iPhone6 тАЛтАЛрдЬреИрд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╡рд░реНрддрдорд╛рди iOS рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рднреА рдЕрдзрд┐рдХрддрдо рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛рдкреЙрдЗрдВрдЯ (рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬрд╝реВрдо рдЖрдЙрдЯ) рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрд░реАрдм рдкрд╣реБрдВрдЪ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рд╣рдЬрд╛рд░ рдбреЗрдЯрд╛рдкреЙрдЗрдВрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдлрд╝реНрд░реЗрдордбреНрд░реЙрдкреНрд╕ рд╣реЛрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, MPAndroidcharts рдмрд┐рдирд╛ рдкрд╕реАрдирд╛ рдмрд╣рд╛рдП рдмрд╣реБрдд рдзреАрдореЗ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдХрдИ рд╣рдЬрд╝рд╛рд░реЛрдВ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдУрд╡рд░рд░рд╛рдЗрдб func viewDidLoad () {
рд╕реБрдкрд░.рд╡реНрдпреВрдбрд┐рдбрд▓реЛрдб ()

    lineChart = LineChartView(frame: view.frame);
    view.addSubview(lineChart);
    lineChart.backgroundColor = UIColor.whiteColor()
    lineChart.descriptionText = "Just a test"
    lineChart.leftAxis.enabled = false
    lineChart.legend.enabled = false

    setData(20)
}

func setData(range:Float) {

    var count = 1000;
    var xVals = Array<String>();

    for(var i = 0; i<count; i++) {
        xVals.append(String(i) + "");
    }

    var yVals = Array<ChartDataEntry>();

    for (var i = 0; i<count; i++) {
        var mult = range + 1
        var val:Float = Float(random()) * mult + 3;
        yVals.append(ChartDataEntry(value: val, xIndex: i));
    }

    var lineSet:LineChartDataSet = LineChartDataSet(yVals: yVals, label: " ");
    lineSet.drawCirclesEnabled = false;
    lineSet.drawValuesEnabled = false;

    var lineData:LineChartData = LineChartData(xVals: xVals, dataSet: lineSet);
    lineChart.data = lineData;
}

рд╡реИрд╕реЗ рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рднреА рдЪрд╛рд░реНрдЯ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ - рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдмрд╛рдзрд╛ рд╢рд╛рдпрдж рдПрдХ рдЖрд╡рдВрдЯрди рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдХрд╣реАрдВ рдпрд╛рдж рдХрд┐рдпрд╛ рд╣реИ ... рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдмрддрд╛ рджреВрдВрдЧрд╛! :-)

рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рдбреЗрдирд┐рдпрд▓ред рдЖрдЧреЗ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕рдореЗрдВ рд╕реЗ рдХреНрдпрд╛ рдирд┐рдЪреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред IOS рдкрд░ MPAndroidCharts рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╕рд╛рдереА рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдЦреИрд░, рдореИрдВрдиреЗ LineChartRenderer рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЦреЗрд▓рд╛ рд╣реИ (рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ BarChartRenderer рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдзреАрдорд╛ рд╣реИ) рдФрд░ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреНрд╕ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ CGContext рдХрд╛ рдбреНрд░рд╛рдкрд╛рде рдпрд╣рд╛рдВ рдЕрдкрд░рд╛рдзреА рд╣реИред
рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп UIBezierPath рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ рд╣реА рдЖрдк рдкрде рдкрд░ рд╕реНрдЯреНрд░реЛрдХ() рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рджрд░реНрд╢рди рд╡реИрд╕рд╛ рд╣реА рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдбреНрд░рд╛рдЗрдВрдЧ рдкреНрд░рджрд░реНрд╢рди рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрде рд╢реБрд░реВ рдФрд░ рдЕрдВрдд рдмрд┐рдВрджреБ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рднрд░рд╛ рд╣реБрдЖ рд╣реИ, рди рдХрд┐ рд╣рдо рдПрдХ рд╕рд░рд▓ рд░реЗрдЦрд╛ рдЪрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рд╣рд▓ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдФрд░ рднрд╛рдЧреНрдп рдорд┐рд▓рд╛ рд╣реЛрдЧрд╛ред

рдореИрдВ рдЕрднреА рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рд╣рд╛рдВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ CGContextStrokePath рдЦрд░рд╛рдм рдкреНрд░рджрд░реНрд╢рди рд╕реЗ рдЧреНрд░рд╕реНрдд рд╣реИред
рдкреНрд░рдореБрдЦ рд╣рд┐рдЯрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдзрд░рд╛рд╢рд╛рдпреА рд░реЗрдЦрд╛ рд╣реИред рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рддреЗ рд╕рдордп, рдкреНрд░рджрд░реНрд╢рди ~ рджреЛрдЧреБрдирд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдПрдХ рд╣рдЬрд╛рд░ рдЕрдВрдХреЛрдВ рдХреЗ рд╕рд╛рде рдЦрд░рд╛рдм рд╣реИред
рдХреЛрд░рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЛ рддреЗрдЬрд╝ рдмрдирд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдРрдкреНрдкрд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдХреБрдЫ рдкрдврд╝ рд░рд╣рд╛ рд╣реВрдВ

рд╣рд╛рдВ, рдХреЛрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдкрде рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд░рд╣рд╛ рд╣реИред рд╕рдВрдХрд▓реНрдк рдХреЗ рдХрд╛рд░рдг рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ - рдирдП Apple рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдкрд┐рдХреНрд╕реЗрд▓ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реАрдЬреА рдЬреАрдкреАрдпреВ рдХреЗ рдмрдЬрд╛рдп рд╕реАрдкреАрдпреВ рдкрд░ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░ рд░рд╣рд╛ рд╣реИред рд╢рд╛рдпрдж рдХреЛрдИ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЬрд╛рдирддрд╛ рд╣реИ?

рд╕реАрдЬреА рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╕реАрдкреАрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред
GPU рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд╛ рдЕрд░реНрде рд╣реЛрддрд╛ рд╣реИ OpenGL рдХрд╛ рдЙрдкрдпреЛрдЧ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗред рдмрдорд░ рдХрд┐ рд╕реАрдЬреА рдЗрддрдирд╛ рдзреАрдорд╛ рд╣реИ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдЗрд╕ рд╕рд╛рдорд╛рди рдХреЛ рд╕реАрдкреАрдпреВ рдкрд░ рдХреИрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕реАрдкреАрдпреВ рд╣реИрдВ рдЬреЛ рдзреАрдореЗ рд╣реИрдВред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмрд╣реБрдд рдзреАрдорд╛
рд╕реАрдкреАрдпреВ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд╕рд╛рде рддреЗрдЬ рд╕реАрдкреАрдпреВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрдИрдУрдПрд╕ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рдЕрдиреБрднрд╡ рджреЗрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди Apple рдиреЗ рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдЬрд╣рд╛рдБ рдПрдХ рдЗрд╖реНрдЯрддрдо OS рдирд╣реАрдВ рд╣реИ
рдЗрд╕реЗ рддреЗрдЬ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрдм рд╣рдо рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╣рдо рдПрдирд┐рдореЗрд╢рди рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ - рд▓реЗрдХрд┐рди
рдореИрдВ рдЕрднреА рднреА рд▓рд╛рдЗрди рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдЖрдзрд╛рд░рд┐рдд рдЪрд╛рд░реНрдЯред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкрде рдЖрд░реЗрдЦрдг рдкреНрд░рдгрд╛рд▓реА рдзреАрдореА рд╣реИ, рдФрд░ рдХрдм
рдореЗрдЯрд░ рдФрд░ рдлреНрд▓реИрдЯрдиреЗрд╕ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдирд╛, рдФрд░ рдзрд░рд╛рд╢рд╛рдпреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдФрд░
рдПрдВрдЯреАрдПрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ - рдкреНрд░рджрд░реНрд╢рди 500-700 рдЕрдВрдХ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдмреЗрд╣рддрд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
iPhone 6, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА 1000 . рдХреЗ рд╕рд╛рде рдЭрдЯрдХреЗрджрд╛рд░

UIBezierPath рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдЬреИрд╕реЗ рд╣реА рдЖрдк 'рд╕реНрдЯреНрд░реЛрдХ' рдирд╣реАрдВ рдХрд╣рддреЗ рд╣реИрдВ, рд╡рд╣ рдЪреАрдЬрд╝ рдкрд░реНрдпрд╛рдкреНрдд рддреЗрдЬрд╝ рд╣реИ, рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдкрде рдПрдХ рд╕реНрдЯреНрд░реЛрдХ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреНрд░рд╛рд░рдВрдн рдмрд┐рдВрджреБ рд╕реЗ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рддрдХ рдирд╣реАрдВ рднрд░рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЙрд╕рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЧреНрд░рд╛рдлрд╝ рдбреНрд░рд╛рдЗрдВрдЧ рд╕реНрд╡рдпрдВ рд╣реА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЪреВрдВрдХрд┐ рдореБрдЭреЗ рд▓рд╛рдЗрди рдЪрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП UIBezierPath рдХрд╛ рдареАрдХ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛, рдпрд╣ рдЧреНрд░рд┐рдб рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рд╕реНрдЯреНрд░реЛрдХ рдХреЛ рдХреЙрд▓ рдХрд┐рдП рдмрд┐рдирд╛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрде рдХреЛ рдЪрдХрдорд╛ рджреЗ рд╕рдХрддрд╛ рд╣реИред рднрд▓реЗ рд╣реА рдпрд╣ рдПрдкреАрдЖрдИ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ 'рдЧрд▓рдд' рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

UIBezierPath CGPath, CGContextDrawPath рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХреЗрд╡рд▓ рдПрдХ UIKit рдЖрд╡рд░рдг рд╣реИ,
рдЖрджрд┐ред
рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рджреЗрдЦрд╛ рдЧрдпрд╛ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдЕрдВрддрд░ рдЗрд╕рдХреЗ рдХрд╛рд░рдг рд╣реИ
UIBezierPath рдХреЗ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ CG рдХреА рд╕реНрдерд╛рдкрдирд╛
рдПрдВрдЯреАрдПрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ, рдореИрдЯрд░ рд▓рд┐рдорд┐рдЯ рдЖрджрд┐ред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реИ рдЬрдм рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ
рдХреЛрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ред

рдФрд░ рд╣рд╛рдБ, рд╣рдореЗрдВ "рд╕реНрдЯреНрд░реЛрдХ" рдХрд╣рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЙрд╕ рдкрде рдХреЛ рд╕реНрдЯреНрд░реЛрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ ...
рдЗрд╕реЗ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред
рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдкрдердкрд╛рдХрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдареЛрд╕ рднрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИ
рд░рдВрдЧ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рд▓рд╛рдЗрдиреЛрдВ рдХреА рдЪреМрдбрд╝рд╛рдИ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЬреБрдбрд╝рддрд╛ рд╣реИ
рд░реЗрдЦрд╛рдУрдВ рдФрд░ рдЬреЛрдбрд╝реЛрдВ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдмреАрдЪред

рд╢реБрдХреНрд░ рдкрд░, рдЕрдкреНрд░реИрд▓ 17, 2015 рдХреЛ 10:50 рдмрдЬреЗ, AlBirdie рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

UIBezierPath рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рд╡рд╣ рдмрд╛рдд
рдЬреИрд╕реЗ рд╣реА рдЖрдк 'рд╕реНрдЯреНрд░реЛрдХ' рдХрд╣рддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рддреЗрдЬрд╝ рд╣реИ
рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкрде рдПрдХ рд╕реНрдЯреНрд░реЛрдХ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реЗ рдирд╣реАрдВ рднрд░рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП startpointред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ
рдкреГрд╖реНрдарднреВрдорд┐, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЧреНрд░рд╛рдл рдбреНрд░рд╛рдЗрдВрдЧ рд╕реНрд╡рдпрдВ рдирд╣реАрдВ рд╣реИ
рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдореБрджреНрджрд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЪреВрдВрдХрд┐ рдореБрдЭреЗ UIBezierPath рдХреЛ рдареАрдХ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛
рд▓рд╛рдЗрди рдЪрд╛рд░реНрдЯ, рдпрд╣ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЧреНрд░рд┐рдб рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рд╕реНрдЯреНрд░реЛрдХ рдХреЛ рдмреБрд▓рд╛рдП рдмрд┐рдирд╛ рдкрде рдХреЛ рдЪрдХрдорд╛ рджреЗ рд╕рдХрддрд╛ рд╣реИ рднрд▓реЗ рд╣реА рд╡рд╣
рдПрдкреАрдЖрдИ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ 'рдЧрд▓рдд', рдЗрд╕реЗ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/danielgindi/ios-charts/issues/29#issuecomment -93937181
.

@danielgindi рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдиреЗ рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдПрдиреАрдореЗрд╢рди рдЪреАрдЬреЛрдВ рдХреЛ рдзреАрдорд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдПрдиреАрдореЗрд╢рди рдХреЗ рдмрд┐рдирд╛ рд╕рднреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдХреИрд╕реЗ рдЦреАрдВрдЪрдирд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдХрд╡рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рд╕реНрдХ рджреГрд╢реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рддреЛ рдПрдиреАрдореЗрд╢рди рдХреА рдирдХрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреМрдЯрд╛ рджреГрд╢реНрдп рдХреЛ рдЪреЗрддрди рдХрд░реЗрдВ?

рдЕрдЪреНрдЫрд╛ рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ! :)

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд╣рд▓реВ рд╣реИ:
рдпрд╣ рдЙрд╕ рддрд░рд╣ рдХреЗ рдПрдирд┐рдореЗрд╢рди рдХреЛ рдкрдВрдЧреБ рдмрдирд╛ рджреЗрдЧрд╛ рдЬреЛ рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ
Y рдЕрдХреНрд╖ рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░рддреЗ рд╣реБрдП рдЪрд╛рд░реНрдЯ "рдмрдврд╝рддрд╛" рд╣реИ, рдФрд░ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд▓рд╛рдЗрди рднрд░рддрд╛ рд╣реИ
рдПрдХреНрд╕ рдЕрдХреНрд╖ рдкрд░ рднреА рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдЯреНрд░реЛрдХ рд╣реЛрдиреЗ рдкрд░ рдЕрд▓рдЧ рд╣реЛрддрд╛ рд╣реИред

рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреАрдЬреЛрдВ рдХреА рдореЗрд░реА рд╕реВрдЪреА рд╣реИ:

  1. рдХрд┐рд╕реА рддрд░рд╣ рдХреЛрд░рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЛ рдмрдврд╝рд╛рдПрдВ рдпрд╛ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдКрдкрд░ рдЙрдард╛рдПрдВ
    рдЬреАрдкреАрдпреВ

    1. рд╕рднреА рдПрдиреАрдореЗрд╢рди рдлрд╝реНрд░реЗрдореЛрдВ рдХреЛ рдкреНрд░реА-рд░реЗрдВрдбрд░ рдХрд░реЗрдВ- рдпрд╣ рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рджреЗрд░реА рдХрд░реЗрдЧрд╛, рдФрд░

      рдХрд╛рдлреА рдорд╛рддреНрд░рд╛ рдореЗрдВ рд╕реНрдореГрддрд┐ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░реЗрдВ

    2. рдЖрдкрдХрд╛ рдорд╛рд╕реНрдХрд┐рдВрдЧ рд╡рд┐рдЪрд╛рд░- рдЬреЛ рдПрдирд┐рдореЗрд╢рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ

рдЕрдЧрд░ рдЕрдиреНрдп рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдЙрдиреНрд╣реЗрдВ рд╕реБрдирдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛!

рдбреИрдирд┐рдпрд▓, рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрднреА рддрдХ GPU рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА?
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЙрд╕ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╕рдорд╛рдзрд╛рди рд╕реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╛рдЦреБрд╢ рд╣реВрдВ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рднрдпрд╛рдирдХ рдПрдкреАрдЖрдИ, рднрдпрд╛рдирдХ рд░реВрдк рд╕реЗ рдмрдВрдж, рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмрдЧ рдЬреЛ рдРрдк рдХреЛ рдХреНрд░реИрд╢ рдХрд░ рджреЗрддреЗ рд╣реИрдВ), рдФрд░ MPAndroidCharts рдХреЗ рд╕рд╛рде рдЗрддрдиреА рдмрдбрд╝реА рд╕рдлрд▓рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ рдЖрдИрдУрдПрд╕-рдЪрд╛рд░реНрдЯ рдЕрдВрддрддрдГ рдЕрдЧрд░ рдкреНрд░рджрд░реНрд╢рди рдмрд░рд╛рдмрд░ рд╣реИред рдирд┐рд╢реНрдЪрд┐рдВрдд рд░рд╣реЗрдВ, рдЖрдкрдХреЗ рдХрд╛рдо рдХреЛ рдкреБрд░рд╕реНрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред ;)

рдХреБрдЫ рдЕрд▓рдЧ рддрдХрдиреАрдХреЛрдВ рдХреЛ рдЖрдЬрдорд╛рддреЗ рд╣реБрдП, рдореИрдВ рдЖрдкрдХреЛ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рдПрдХ рдЕрдкрдбреЗрдЯ рджреВрдВрдЧрд╛!

рд╕реЛрдо, 20 рдЕрдкреНрд░реИрд▓, 2015 рдХреЛ рджреЛрдкрд╣рд░ 12:38 рдмрдЬреЗ, рдЕрд▓рдмрд░реНрдбреА рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдбреИрдирд┐рдпрд▓, рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрднреА рддрдХ GPU рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА?
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╕рдорд╛рдзрд╛рди рд╕реЗ рдирд╛рдЦреБрд╢ рд╣реВрдВ
рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ (рднрдпрд╛рдирдХ рдПрдкреАрдЖрдИ, рд╡рд┐рд╕реНрдордпрдХрд╛рд░реА рд░реВрдк рд╕реЗ рдмрдВрдж, рдФрд░ рдмрдЧ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ
рдРрдк рдХреНрд░реИрд╢ рд╣реЛ рдЧрдпрд╛), рдФрд░ MPAndroidCharts рдХреЗ рд╕рд╛рде рдЗрддрдиреА рдмрдбрд╝реА рд╕рдлрд▓рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо
рдЕрдЧрд░ рдкреНрд░рджрд░реНрд╢рди рдмрд░рд╛рдмрд░ рд╣реИ рддреЛ рдЖрдИрдУрдПрд╕-рдЪрд╛рд░реНрдЯ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИред рдЖрд░рд╛рдо
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ, рдЖрдкрдХреЗ рдХрд╛рдо рдХреЛ рдкреБрд░рд╕реНрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред ;)

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/danielgindi/ios-charts/issues/29#issuecomment -94408574
.

@AlBirdie рдЖрдк рдХрд┐рд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЕрдбрд╝рдЪрди рд╕реЗ рдорд┐рд▓реЗ? рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдЙрддреНрдкрд╛рдж рдХрд╛ рдорд╛рд▓рд┐рдХ рд╣реВрдВ рдЬреЛ рдЖрдИрдУрдПрд╕-рдЪрд╛рд░реНрдЯ рдХреА рддрд░рд╣ рдЪрд╛рд░реНрдЯ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЪрд╛рд░реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдереАред рдореБрдЭреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЪрд┐рдВрддрд╛ рд╣реИ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ 100-1000 рдбреЗрдЯрд╛ рд╕реЗрдЯ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдЕрдм рдареАрдХ рд▓рдЧрддрд╛ рд╣реИред

рдореИрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдЖрдИрдУрдПрд╕-рдЪрд╛рд░реНрдЯ рдореЗрдВ рдмрджрд▓рдиреЗ рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдЗрд╢рд╛рд░реЛрдВ рдореЗрдВ рдЖрдИрдУрдПрд╕-рдЪрд╛рд░реНрдЯ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдкреНрд░рджрд░реНрд╢рди рдХреА рд╕рдорд╕реНрдпрд╛ рдПрдирд┐рдореЗрд╢рди рдореЗрдВ рдзреАрдореА рдлреНрд░реЗрдо-рджрд░ рд╣реИ рдЬрдм
рдПрдХ рд░реЗрдЦрд╛ рдЪрд╛рд░реНрдЯ рдореЗрдВ 500-1000 рд░реЗрдЦрд╛рдПрдБ рдЦреАрдВрдЪрдирд╛ред

рдЗрд╢рд╛рд░реЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ - рд╣рдо рдорд╛рдирдХ UIGestureRecognizers рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдЬреЛ рдЖрдк
рдЕрдХреНрд╖рдо, рд╕рдВрд╢реЛрдзрд┐рдд рдпрд╛ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рдорд╛рдирдХреАрдХреГрдд рд╣реИред :-)

рд╕реЛрдо, 20 рдЕрдкреНрд░реИрд▓, 2015 рдХреЛ рджреЛрдкрд╣рд░ 12:53 рдмрдЬреЗ, Xuan [email protected] рдиреЗ рд▓рд┐рдЦрд╛:

@AlBirdie https://github.com/AlBirdie рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди
рдмрд╛рдзрд╛ рддреБрдо рдорд┐рд▓реЗ? рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рдРрд╕реЗ рдЙрддреНрдкрд╛рдж рдХрд╛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╣реИ рдЬреЛ рдЪрд╛рд░реНрдЯ рдмрдирд╛рддрд╛ рд╣реИ
рдЖрдИрдУрдПрд╕-рдЪрд╛рд░реНрдЯ рдХреА рддрд░рд╣, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдЪрд╛рд░реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдереАред рдореБрдЭреЗ рднреА рдЪрд┐рдВрддрд╛ рд╣реИ
рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ 100-1000 рдбреЗрдЯрд╛ рд╕реЗрдЯ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдареАрдХ рд▓рдЧрддрд╛ рд╣реИ
рдЕрдм рдХред

рдореИрдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдЖрдИрдУрдПрд╕-рдЪрд╛рд░реНрдЯ рдореЗрдВ рдмрджрд▓рдиреЗ рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ,
рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЬреЗрд╕реНрдЪрд░ рдереЗ рдЬрд┐рдирдХрд╛ рдЖрдИрдУрдПрд╕-рдЪрд╛рд░реНрдЯ рдХреЗ рд╕рд╛рде рд╡рд┐рд░реЛрдз рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

-
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ рдпрд╛ рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/danielgindi/ios-charts/issues/29#issuecomment -94411060
.

@danielgindi рдареАрдХ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдирд┐рдореЗрд╢рди рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдХ рд╡реНрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ ... рд╣рдорд╛рд░реЗ рд▓рд╛рдЗрди рдЪрд╛рд░реНрдЯ рдореЗрдВ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рд▓реЗрдпрд░ рд╣реИред рдЖрдкрдХреЗ рдбреЗрдореЛ рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдкрдХрд╛ рдПрдиреАрдореЗрд╢рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ X+Y рджреЛрдиреЛрдВ рджрд┐рд╢рд╛рдУрдВ рдХреЛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╣рдо рдХреЗрд╡рд▓ X рджрд┐рд╢рд╛ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдорд╛рд╕реНрдХ рдЯреНрд░рд┐рдХ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИред
рдореЗрд░реЗ рдорди рдореЗрдВ рдЕрдм рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдкрдХреА X + Y рджрд┐рд╢рд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдХреНрдЯрд░ рдерд╛, рддреЛ рд╢рд╛рдпрдж рдорд╛рд╕реНрдХ рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдореМрдХрд╛ рд╣реИ ... рдЖрдкрдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░ рд╣реИрдВ!

@ liuxuan30 рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдзреАрдорд╛ рдкреНрд░рджрд░реНрд╢рдиред рдПрдирд┐рдореЗрд╢рди рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рд╡рд┐рддреНрдд рдЪрд╛рд░реНрдЯ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдПрдХ рдЪрд╛рд░реНрдЯ рдореЗрдВ рдПрдХрд╛рдзрд┐рдХ рдбреЗрдЯрд╛рд╕реЗрдЯ (рдПрдХрд╛рдзрд┐рдХ рд╕реНрдЯреЙрдХ + рд╕рдВрдХреЗрддрдХреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред 250 рдЖрдЗрдЯрдореНрд╕ рдХреА рдбреЗрдЯрд╛ рд░реЗрдВрдЬ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрдИ рд╣рдЬрд╝рд╛рд░ рдкреЙрдЗрдВрдЯ рддрдХ рдЬреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдкреИрдирд┐рдВрдЧ рдФрд░ рдкрд┐рдВрдЪрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдПрдХ рдмрд╛рд░ рдореЗрдВ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЬрд┐рд╕ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ (рдУрдкрдирдЬреАрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рд╕реАрдкреАрдпреВ рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рд╣рдЬрд╛рд░реЛрдВ рдЕрдВрдХ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ), рд▓реЗрдХрд┐рди рдореИрдВ рдмрдВрдж рд╕реНрд░реЛрдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдорд┐рддреНрд░ рдирд╣реАрдВ рд╣реВрдВ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдмрдЧ рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдорд╣реАрдиреЛрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред
рдореИрдВ рдЖрдИрдУрдПрд╕-рдЪрд╛рд░реНрдЯ рдХреЗ рд╕рд╛рде рдФрд░ рдЕрдзрд┐рдХ рд╕рд╣рдЬ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдПрдордкреАрдПрдВрдбреНрд░реЙрдЗрдб рдЪрд╛рд░реНрдЯ рдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдЖрд╕рд╛рди рд╣реИред

рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ, рд╡рд┐рддреНрдд рдбреЗрдЯрд╛ рдЖрдкрджрд╛ рд╣реИред рд╣рдорд╛рд░рд╛ рд╕рд░реНрд╡рд░ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХреЗрд╡рд▓ 1000 рдбреЗрдЯрд╛ рд╕реЗрдЯ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рдЕрдзрд┐рднрд╛рд░ рдХрдо рд╣реЛ рдЧрдпрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдИрдУрдПрд╕-рдЪрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП рдУрдкрдирдЬреАрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдореМрдХрд╛ рд╣реИ? @danielgindi

рдУрдкрдирдЬреАрдПрд▓ рд╕рдорд░реНрдерди рдЗрдХреНрдХреЗ рд╣реЛрдЧрд╛ред рдПрдХ GPU рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд▓рд╛рдЗрди рдЪрд╛рд░реНрдЯ рд╢рд╛рдпрдж рдЕрднреА рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧрд╛ред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореБрдЭреЗ рдУрдкрдирдЬреАрдПрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдореБрдЭреЗ рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред

рдкрдереЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд░реЛрдз рдореЗрдВ CGContextStrokeLineSegments рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реБрдЖ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдпрд╣ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЕрднреА рднреА рдЪреАрдЬреЛрдВ рдХреЛ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ :-)

рдзрдиреНрдпрд╡рд╛рдж рдбреИрдирд┐рдпрд▓, рдореИрдВ рдПрдХ рдЫреЛрдЯрд╛ рдкрд░реАрдХреНрд╖рдг рдРрдк рдмрдирд╛рдЙрдВрдЧрд╛ рдЬреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рджреЛ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдмреЗрдВрдЪ рджреЗрддрд╛ рд╣реИ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рд╣реИред рдирдП рд▓рд╛рдЗрдирд╕реЗрдЧрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдкрдХреЛ рдХреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рди рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рд╣реБрдП?

@AlBirdie рдХреНрдпрд╛ рдЖрдк рд▓рд╛рдЗрди рд╕реЗрдЧрдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рдЕрдВрддрд░ рдорд╣рд╕реВрд╕ рдХрд░рддреЗ рд╣реИрдВ?

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореБрдЭреЗ рдЕрднреА рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рд╣реИ: рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдЗрд╕реЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░рдд рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ- рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдзрд░рд╛рд╢рд╛рдпреА рд░реЗрдЦрд╛рдПрдВ рдзрд░рд╛рд╢рд╛рдпреА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ, рд╡реЗ рд╕рднреА рдареЛрд╕ рд╣реЛрддреЗ рд╣реИрдВред

рддреЛ рдкрд╣рд▓реА рдмрд╛рдд рдЕрдЧрд░ рдЖрдк рдЖрдИрдУрдПрд╕ рдкрд░ рдзрд░рд╛рд╢рд╛рдпреА рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрдврд╝рд╛рд╡рд╛ рдорд┐рд▓рддрд╛ рд╣реИ!

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реАрдЖрдИрдПрдордореЗрдЬ рдкрд░ рдУрдкрдирдЬреАрдПрд▓ рдИрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдЧрд░ рдРрдк рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╣реЛрдиреЗ рдкрд░ рдПрдХ рдЬреАрдПрд▓ рд▓рд╛рдЗрди рдЪрд▓рддреА рд╣реИ- рддреЛ рдпрд╣ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рдПрдЧреАред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдореМрдХрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрднреА рднреА рдмрдирд╛рд╡рдЯ рдХреЛ рдкреВрд░реНрд╡-рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░рдХреЗ рдбреИрд╢ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВред рдпрд╣ рдХреБрдЫ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдФрд░ рдпрд╣ рдореЗрд░реА рдореБрдЦреНрдп рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рдУрдкрдирдЬреАрдПрд▓ рдкрд░рдд рдХреА рдПрдХ рд╕рд╛рдЗрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╢реБрд░реВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ CGContext рдХреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред

рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП рдУрдкрдирдЬреАрдПрд▓ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдХреЛрд░ рдПрдирд┐рдореЗрд╢рди рдХреЛ рдХрдо рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╢рд╛рдпрдж CAShapeLayer рд╡рд░реНрдЧ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред Apple рдПрдХ рдЬрдЯрд┐рд▓ рдкрде рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╕рдордп рдПрдХрд╛рдзрд┐рдХ CAShapeLayer s рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд▓рд╛рдЗрди рд╕реЗрдЧрдореЗрдВрдЯ рдХреЛ рдХрдИ рд╕реЗрдЧрдореЗрдВрдЯ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдХреЛрд░ рдПрдирд┐рдореЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдо рдХреЛ GPU рдкрд░ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореЗрд░реЗ рджрд┐рди рдХреЗ рдХрд╛рдо рдореЗрдВ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд╣рдордиреЗ рдПрдХ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдЙрддреНрдкрд╛рдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ @AlBirdie рджреНрд╡рд╛рд░рд╛ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдУрдкрдирдЬреАрдПрд▓ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╣рд░ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдХреЛрд░рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡реЗ рдХрд╛рдлреА рдмрдбрд╝реЗ рдбреЗрдЯрд╛рд╕реЗрдЯреНрд╕ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ, рдЬреЛ рдХрд┐ рдХрд╛рдлреА рд╕реНрдореВрде рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╣реИрдВ рдФрд░ рд╡реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рджрд╛рд╡рд╛ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЙрдирдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕рд┐рд░рджрд░реНрдж рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ, рди рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдмрдЧ рдЬреЛ рд╡реЗ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдУрдкрдирд┐рдВрдЧ рдореЗрдВ рдХреНрд░реИрд╢ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХреЙрд▓реЗрдВ рдЬреИрд╕реЗ рдХрд┐ рдУрдПрдирдЬреАрд╕реАрдПрд▓ рдореЗрдВ рджреБрд░реНрдШрдЯрдирд╛, рдРрдк рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЪрд▓реА рдЧрдИ рд╣реИ, рдореБрд╣рд╛рд╡рд░реЗрджрд╛рд░ рд╡рд░реНрдЧ рд╕рдВрд░рдЪрдирд╛рдПрдВ рдФрд░ рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝реЗрдмрд┐рд▓рд┐рдЯреА рдкрд░ рдкрд╛рдЧрд▓ рдкреНрд░рддрд┐рдмрдВрдзред рдореИрдВ рдЬреЛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рдЖрдЬ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдИрдУрдПрд╕-рдЪрд╛рд░реНрдЯ рдореЗрдВ рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╡рд╣рд╛рдВ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡реИрд╕реЗ рднреА, рдореЗрд░реЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╣рд░ рдмрд╛рд░ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдЬреАрдд рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рдЕрдВрддрд░ рд╕реЗ рд╣реИ, рджреЛрдиреЛрдВ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред

рдкреАрдПрд╕ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдзрд░рд╛рд╢рд╛рдпреА рд▓рд╛рдЗрдиреЗрдВ рдЙрди рджрд┐рдиреЛрдВ рд╕реЗ рдПрдХ рд╣реИрдВрдЧрдУрд╡рд░ рд╣реИрдВ рдЬрдм рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдкрд╛рд╕ рд░рдВрдЧ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЧреНрд░реЗрд╕реНрдХреЗрд▓ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдерд╛ - рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╣рдо рд╢реБрджреНрдз рдХрд╛рд▓реЗ рдФрд░ рд╕рдлреЗрдж рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдРрд╕рд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдкреБрд░рд╛рдиреЗ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рд▓реЗрдЯрд░рдкреНрд░реЗрд╕-рдореБрджреНрд░рд┐рдд рдкрд╛рдареНрдпрдкреБрд╕реНрддрдХ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ? ;) рддреЛ рд╕рд╛рдорд╛рдиреНрдп 10K рдЕрдВрдХ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рдХрдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдзрд░рд╛рд╢рд╛рдпреА рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдЖрдкрдХреЗ рд╕рд╛рде @onlyforart ред
рдЖрдкрдХреА рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЪрд╛рд░реНрдЯрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдЙрд╕реА рдЙрддреНрдкрд╛рдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред :) рд╣рдордиреЗ рдЖрдЦрд┐рд░рдХрд╛рд░ рдЗрд╕реЗ рд╡реИрд╕реЗ рд╣реА рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рдореБрдЭреЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рддреАрди рдорд╣реАрдиреЗ рдХрд╛ рдмреЗрд╣рддрд░ рд╣рд┐рд╕реНрд╕рд╛ рдХреНрдпрд╛ рд▓рдЧрд╛ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЧрдВрднреАрд░ рдмрдЧ рдФрд░ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ (рдЬреИрд╕реЗ рдХреНрд░реЙрд╕рд╣реЗрдпрд░) рдХреЛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд▓рдВрдмрд╛ рдирд╣реАрдВ рдерд╛), рдЖрдИрдУрдПрд╕ рдЪрд╛рд░реНрдЯреНрд╕ ('рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╡рд░реНрдЧ рд╕рдВрд░рдЪрдирд╛рдПрдВ';)) рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рджреЛ рд╕рдкреНрддрд╛рд╣ рд▓рдЧ рдЧрдПред рд╕рдордп рдФрд░ рдзрди рдХреА рдХреБрд▓ рдмрд░реНрдмрд╛рджреАред

@AlBirdie рд╣рд╛рдБ рд╡рд╣ рд╡рд╣реА рд╣реИред рдХреНрд░реЙрд╕рд╣реЗрдпрд░ рдХрд╛ рдЬрд┐рдХреНрд░ рднреА рдордд рдХрд░реЛред рдмрд╣реБрдд рдЕрдзрд┐рдХ рдиреНрдпреВрдХреИрд╕рд▓ рдмреНрд░рд╛рдЙрди рдПрд▓реЗ рдХреА рдорджрдж рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдирд┐рд╕реНрд╕рдВрджреЗрд╣ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдмрд╛рдЬрд╛рд░ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдЬрд╣рд╛рдВ рдПрдХ рд╢рд╛рдирджрд╛рд░ рдПрдкреАрдЖрдИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдмрд┐рдХреНрд░реА рдХрд╛рд░рдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдПрдХ рдорд╣рдВрдЧреЗ рд╕рдорд░реНрдерди/рд░рдЦрд░рдЦрд╛рд╡ рдЪрдХреНрд░ рдореЗрдВ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ)ред рдХреНрдпрд╛ рдЖрдк рдЙрди рд▓реЛрдЧреЛрдВ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рдЬрд╛рдирддреЗ рд╣реИрдВ? рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ (рдЕрдкрдиреЗ рдЧрд╣рд░реЗ рдЕрддреАрдд рдореЗрдВ) рд╡реЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЙрджреНрдпреЛрдЧ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдЧреНрд░рдгреА рдереЗред рд╡реИрд╕реЗ рднреА рдпрд╣ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреА рдУрд░ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рд╣рдо рдЬреНрдпрд╛рджрд╛рддрд░ рдХреИрдВрдбрд▓рд╕реНрдЯрд┐рдХ рдЪрд╛рд░реНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ (рдпреЗ рд╡рд┐рддреНрддреАрдп рдХреНрд╖реЗрддреНрд░ рдХреЗ рдРрдк рд╣реИрдВ)ред рдЬреЛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдИрдУрдПрд╕ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдПрдЪрдЯреАрдПрдордПрд▓ 5/рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╣рд╛рдИрдЪрд░реНрдЯреНрд╕/рд╣рд╛рдИрд╕реНрдЯреЙрдХ рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ:

  1. рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдкреЙрдЗрдВрдЯ (10K рдпрд╛ рдЕрдзрд┐рдХ)
  2. рдУрдПрдЪрдПрд▓рд╕реА рдбреЗрдЯрд╛ рдХрд╛ рд╕рдордЭрджрд╛рд░ рд╕реНрдХреЗрд▓ рдмрд╛рд░ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдореЗрдХрди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬрд╝реВрдо рдХрд╛рд░рдХ рдЙрдкрдпреБрдХреНрдд рд╣реЛрдиреЗ рдкрд░ 1 рдПрдЪ рдмрд╛рд░ рджрд┐рдЦрд╛рдПрдВ, рдпрд╛ рдЬрд╝реВрдо рдЖрдЙрдЯ рд╣реЛрдиреЗ рдкрд░ 1 рдореАрдЯрд░ рдпрд╛ 1 рдПрд╕ рдмрд╛рд░ рджрд┐рдЦрд╛рдПрдВ)
  3. рдЪрд┐рдХрдиреА рдкреИрдирд┐рдВрдЧ рдФрд░ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ
  4. рдЖрдХрд░ рдмрдбрд╝рд╛ рдХрд░реЛ
  5. рдПрдХрд╛рдзрд┐рдХ рдбреЗрдЯрд╛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдФрд░ рдПрдиреЛрдЯреЗрд╢рди рдФрд░ рдХреНрд░реЙрд╕рд╣реЗрдпрд░ рдХреЛ рдУрд╡рд░рд▓реЗ рдХрд░рдирд╛, рдХреБрдЫ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдХ рд░реВрдк рд╕реЗ рдФрд░ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░реИрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдорд╛ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рднреА рдХреЛ рд╕реБрдЪрд╛рд░реВ рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛
  6. (рдпрд╣рд╛рдВ рдХрд┐рдХрд░ рд╣реИ - рд╣рд╛рдИрд╕реНрдЯреЙрдХ рдЗрд╕рд╕реЗ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ! рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рд▓рдЧрддрд╛ рд╣реИ) рдбреЗрдЯрд╛ рдХреА рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдлрд╝реЗрдЪрд┐рдВрдЧ (рд▓реБрдХрд╣реЗрдб рдХреЗ рд╕рд╛рде) рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкреВрд░реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдХрдо рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░, рдореИрдк рдРрдкреНрд╕ рдХреЗ рд╕рд╛рде, рд╣рд╛рдИ-рд░реЗрдЬ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдбреЗрдЯрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдорд┐рд▓реАрд╕реЗрдХрдВрдб "рдЯрд┐рдХ" рдбреЗрдЯрд╛) рдХреЗрд╡рд▓ рдЪрд╛рд░реНрдЯ рдХреЗ рджреЗрдЦреЗ рдЧрдП рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП
    рд╣рдо рдЕрднреА рддрдХ рдЖрдИрдУрдПрд╕-рдЪрд╛рд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдореЗрд░реА "рдЯреВ-рдбреВ" рд╕реВрдЪреА рдореЗрдВ рд╣реИ рдФрд░ рд╢реАрд░реНрд╖ рдХреЗ рдХрд░реАрдм рдкрд╣реБрдВрдЪ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдХреЛрдб рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рджреЗрдЦрд╛, рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ рд╣реА рдореИрдВ рдХрд░рддрд╛ рд╣реВрдВ - рд╢рд╛рдпрдж рдЕрдЧрд▓реЗ рдорд╣реАрдиреЗ - рдореИрдВ рд╡рд╣ рд╕рдм рджреЗрдЦ рд▓реВрдВрдЧрд╛ред
    рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкрд░ рд╡рд╛рдкрд╕, рдУрдкрдирдЬреАрдПрд▓ рдХреЗ рдХреНрд░реИрд╢ рд╣реЛрдиреЗ рдХреА рдкреНрд░рд╡реГрддреНрддрд┐ рдЕрдЧрд░ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд╕рд╣реА рд╕реЗ рдХрдо рд╣реИрдВ рддреЛ рдЪрд┐рдВрддрд╛ рдХрд╛ рд╡рд┐рд╖рдп рд╣реИред GLKit GPU рдбреНрд░рд╛рдЗрдВрдЧ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ; рдореИрдВрдиреЗ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рднреА рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рд╕реНрдкреНрд░рд╛рдЗрдЯрдХрд┐рдЯ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдЪрд╛рд░реНрдЯ рдкреНрд░рддрд┐рдкрд╛рджрди рдЧреЗрдо рдмрдирд╛рдиреЗ рд╕реЗ рджрд╕ рд▓рд╛рдЦ рдореАрд▓ рдирд╣реАрдВ рд╣реИ), рд▓реЗрдХрд┐рди рдЕрднреА рдЬреАрдПрд▓рдХрд┐рдЯ рдПрдХ рдмреЗрд╣рддрд░ рдЙрдореНрдореАрджрд╡рд╛рд░ рд▓рдЧрддрд╛ рд╣реИред

LOL @onlyforart , рдЖрдкрдиреЗ рдореБрдЭреЗ рдиреНрдпреВрдХреИрд╕рд▓ рдмреНрд░рд╛рдЙрди рдПрд▓реЗ рдореЗрдВ рджрд┐рдпрд╛ рдерд╛ред :+1: :)
рдореИрдВ рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╣реА рдирд╛рд╡ рдореЗрдВ рд╣реВрдВ (рд╡рд┐рддреНрдд рдЙрддреНрдкрд╛рджреЛрдВ рдкрд░ рднреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ), рд▓реЗрдХрд┐рди рд╣рд╛рдВ, рдЖрдЗрдП рдЗрди рдЪрд╛рд░реНрдЯреЛрдВ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреНрд░рд╛рдЗрдВрдЧ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЖрдкрдХреЗ рдирд┐рд╖реНрдХрд░реНрд╖реЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рд╣реИред

@onlyforart, рдЕрдкрдиреА рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП @AlBirdie рдзрдиреНрдпрд╡рд╛рдж :-)

рд▓реЛрдЧреЛрдВ рдХреЛ рд╣рдорд╛рд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдЙрджреНрдпрдо рдЙрддреНрдкрд╛рдж рдХреЛ рдЫреЛрдбрд╝рддреЗ рд╣реБрдП рджреЗрдЦрдирд╛ рд╡рд╛рдХрдИ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдЙрдирдХреЗ рд▓рд┐рдП рдмреБрд░рд╛ рд▓рдЧрддрд╛ рд╣реИ... рдореИрдВ рд╡рд┐рд╡рд╛рджрд┐рдд рд╣реВрдВ!

рдореИрдВ рдУрдкрдирдЬреАрдПрд▓ рдХреЛ рдЗрд╕рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рджреЗрдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рдХрд░ рд░рд╣рд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рдерд╛ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИ рддреЛ рд╕рдВрднрд╛рд╡рд┐рдд рдХреНрд░реИрд╢ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ UIKit рдРрдк рдореЗрдВ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдЧреЗрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдкрдирдЬреАрдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдкреВрд░реА рдЪреАрдЬ рдУрдкрдирдЬреАрдПрд▓ рдХреИрдирд╡рд╛рд╕ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдпреВрдЖрдИрдХрд┐рдЯ рдХреЙрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдЬрдмрдХрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдУрдкрдирдЬреАрдПрд▓ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред

@onlyforart рдзрд░рд╛рд╢рд╛рдпреА рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХреА рдмрд╛рдд рд╕рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореБрдЭреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рд╛рде рдзрд░рд╛рд╢рд╛рдпреА рд▓рд╛рдЗрдиреЛрдВ рдХреА рдорд╛рдВрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрднрд╡ рд╣реБрдЖ рд╣реИред рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдПрдХ рдорд╛рдорд▓рд╛ рдерд╛ рдЬрд╣рд╛рдВ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдкрд░рдд рдХреЛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░рдд рдореЗрдВ рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛, рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдмрддрд╛рдпрд╛ рдХрд┐ рдзрд░рд╛рд╢рд╛рдпреА рд▓рд╛рдЗрдиреЗрдВ рдареЛрд╕ рд░реЗрдЦрд╛рдПрдВ рдмрди рдЬрд╛рдПрдВрдЧреА, рдпрд╣реА рд▓рд╛рдЧрдд рд╣реИред рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рдбреНрд░рд╛рдЗрдВрдЧ рдХреЛрдб рдХреЛ рдУрдкрдирдЬреАрдПрд▓ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдПрдХ рд░реЗрдЦрд╛ рдЦреАрдВрдЪрдирд╛ рд╕рд┐рд░рджрд░реНрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдПрдХ рдзрд░рд╛рд╢рд╛рдпреА рд░реЗрдЦрд╛ рдХреЗ рд▓рд┐рдП рдмрдирд╛рд╡рдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ рдЗрд╕рд▓рд┐рдП рдзрд░рд╛рд╢рд╛рдпреА рд▓рд╛рдЗрдиреЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЗрддрдиреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рдереАрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рд╢реЛрд░ рдордЪрд╛рдпрд╛ред

рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдиреЛрдЯ: рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП GLKit рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рджреЗрдЦрддреЗ рд╣реИрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред

рдФрд░ рдЕрдЧрд░ рдореИрдВ рдЖрдкрдХреА рд╕реВрдЪреА рд▓реЗрддрд╛ рд╣реВрдВ:

  1. _"рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдкреЙрдЗрдВрдЯ (10K рдпрд╛ рдЕрдзрд┐рдХ)"_ - рд╣рдо рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ :) рдореИрдВ Android рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ GL рдореЗрдВ рд▓реЗ рдЬрд╛рдирд╛ рдФрд░ рднреА рдмрдбрд╝рд╛ PITA рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд░рд╣рд╛ рд╣реИ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░рдд рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдирд╛, рдЬреЛ GPU рдкрд░ рд╕рднреА рдЖрд░реЗрдЦрдг рдХрд░ рд░рд╣рд╛ рд╣реИред
  2. _"рдУрдПрдЪрдПрд▓рд╕реА рдбреЗрдЯрд╛ рдХрд╛ рд╕рдордЭрджрд╛рд░ рд╕реНрдХреЗрд▓ рдмрд╛рд░ рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдореЗрдХрди"_ - рд╣рдо рдмрд╣реБрдд рдЬрд▓реНрдж рд╕рдиреНрдирд┐рдХрдЯрди рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдЧрд╛ред рдХрдИ 1m рдмрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ 1 рдШрдВрдЯреЗ рдХрд╛ рдмрд╛рд░ рдЖрджрд┐ рдХрд╛ рдЕрдиреБрдорд╛рди рд╣реЛрдЧрд╛ред
  3. _"рдЪрд┐рдХрдиреА рдкреИрдирд┐рдВрдЧ рдФрд░ рд╕реНрдХреНрд░реЙрд▓рд┐рдВрдЧ"_ - рдХрд┐рдпрд╛ :-)
  4. _"рдкрд┐рдВрдЪ рдЯреВ рдЬреВрдо"_ - рдХрд┐рдпрд╛ :-)
  5. _"рдПрдХрд╛рдзрд┐рдХ рдбреЗрдЯрд╛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдФрд░ рдПрдиреЛрдЯреЗрд╢рди рдФрд░ рдХреНрд░реЙрд╕рд╣реЗрдпрд░ рдХреЛ рдУрд╡рд░рд▓реЗ рдХрд░рдирд╛"_ - рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдПрдХ рд╕рдВрдпреБрдХреНрдд рдЪрд╛рд░реНрдЯ рд╣реИ рдЬреЛ рдХрдИ рдЪрд╛рд░реНрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдУрд╡рд░рд▓реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдЪрд╛рд░реНрдЯ рдкреНрд░рдХрд╛рд░ рдХрдИ рдбреЗрдЯрд╛рд╕реЗрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк рд╣рдореЗрд╢рд╛ ViewPortHandler рдореЗрдВ рд╣реБрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рдЪрд╛рд░ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдЬреЛ рдЪрд╛рд╣реЗрдВ рдУрд╡рд░рд▓реЗ рдХрд░ рд╕рдХреЗрдВ
  6. рдбреЗрдЯрд╛ рдХреА рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдкреНрд░рд╛рдкреНрддрд┐ - рд╣рдо рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЛ рд╕рд╛рд░рдЧрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рд╕реНрдерд┐рд░ рдбреЗрдЯрд╛рд╕реЗрдЯ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдкреБрд░рд╛рдиреЗ рдПрдкреАрдЖрдИ рд╣реИрдВ (рдпрд╣ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЕрдиреБрд░реВрдк рднреА рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдХрдм рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ

@danielgindi , рдЙрдирдХреЗ рд▓рд┐рдП рдмреБрд░рд╛ рдордд

рджреВрд╕рд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдпрджрд┐ рдЖрдк рд▓реЛрдЧ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдореЗрдВ рдЕрдкрдиреЗ рдЪрд╛рд░реНрдЯрд┐рдВрдЧ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╕рдореЗрдХрди рдорд┐рд▓рд╛ рд╣реИ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд▓рдЧрд╛рддрд╛рд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрд╡реГрддреНрддрд┐ рдХреА рдУрд░ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВред рдЬрд╝реВрдорд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рди рдХреЗрд╡рд▓ рдФрд╕рдд рд╡рд┐рддреНрдд рдЪрд╛рд░реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╕рд╛рдмрд┐рдд рд╣реБрдЖ, рдмрд┐рдЬрд▓реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рд░рд╛рдЬ рд╣реЛ рдЧрдП рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдирд┐рд╢реНрдЪрд┐рдд рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдЪрд╛рд╣рддреЗ рдереЗред

рд╣рдордиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдкрд░ рдЗрд╕реЗ рдереЛрдкрдиреЗ рдХреА рдХрднреА рдХрд▓реНрдкрдирд╛ рднреА рдирд╣реАрдВ рдХреА рдереА! рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдб рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдлрд╝рд┐рд▓реНрдЯрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдФрд░ MPAndroidCharts рдореЗрдВ рдЖрдк рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдлрд╝рд┐рд▓реНрдЯрд░ рдПрдХ рдРрд╕реА рд╕рдВрдкрддреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рд╕рдХреНрд╖рдо рдХрд┐рдП рдЧрдП рдереЗ рдЬреЛ рдлрд╝рд┐рд▓реНрдЯрд░ (рдХреЛрдИ рднреА рдХрд╕реНрдЯрдо рдлрд╝рд┐рд▓реНрдЯрд░ рдпрд╛ рдмрд┐рд▓реНрдЯ рдЗрди) рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдХрд╛рд░рдг рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЬрдм рд╣рдо рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╡рд╣реА рд░рд╣реЗрдЧреА - рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдФрд░ рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдЧреА :-)

@AlBirdie Re "рджреВрд╕рд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдпрджрд┐ рдЖрдк рд▓реЛрдЧ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рдордиреЗ рдЕрдкрдиреЗ рдЪрд╛рд░реНрдЯрд┐рдВрдЧ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХрд╛ рд╕рдореЗрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рд▓рдЧрд╛рддрд╛рд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрд╡реГрддреНрддрд┐ рдХреА рдУрд░ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВред рдмрджрд▓ рд░рд╣рд╛ рд╣реИ рдЬрд╝реВрдорд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдлрд╝реНрд░реАрдХреНрд╡реЗрдВрд╕реА рди рдХреЗрд╡рд▓ рдФрд╕рдд рд╡рд┐рддреНрдд рдЪрд╛рд░реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рд╛рдмрд┐рдд рд╣реБрдИ, рдмрд┐рдЬрд▓реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рд░рд╛рдЬ рд╣реЛ рдЧрдП рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдирд┐рд╢реНрдЪрд┐рдд рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рдЪрд╛рд╣рддреЗ рдереЗред" рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣рдордд - рдпрд╣ рд╕реВрдЪрдирд╛рддреНрдордХ/рдЧреИрд░-рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░реНрдЯ рдХреЗ рд▓рд┐рдП рд╣реИред рдЯреНрд░реЗрдбрд┐рдВрдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЬрд╝рд░реВрд░рддреЗрдВ рд╣реЛрддреА рд╣реИрдВред

@danielgindi Re "рдбреЗрдЯрд╛рд╕реЛрд░реНрд╕ рдХреЛ

рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдбреНрд░реЙрдЗрдВрдЧ рдХреЛрдб рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдереНрд░реЗрдбреНрд╕ (CALayer.drawsAрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ) рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рд╛? рдпрд╣ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рдпрд╣ рдЪрд╛рд░реНрдЯ рдЕрддрд┐рд░рд┐рдХреНрдд, рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛рд╕реЗрдЯ, рдЧреНрд░рд┐рдб рдФрд░ рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдЦреАрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреЛрд░рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдмрд╣реБрдд рд╣реА рд╡рд┐рдирдореНрд░ рдЕрдиреБрднрд╡ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП (рдкрдврд╝реЗрдВ; рдХреЛрдИ рднреА рдирд╣реАрдВ ;-)), рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреЛрдИ рдкреНрд░рдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рддрдм рдкрд╛рдпрд╛ рдЬрдм рдореИрдВ рдЬреАрдПрд▓рдХрд┐рдЯ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдерд╛ рдФрд░ рдпрд╣ рдЪрд╛рд░реНрдЯ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдХреИрд╕реЗ рд╕реБрдзрд╛рд░ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ 10k рдбреЗрдЯрд╛ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдХреИрдВрдбрд▓ рд╕реНрдЯрд┐рдХ рдЪрд╛рд░реНрдЯ рджрд┐рдЦрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ CandleStickChartRenderer.drawDataSet() рдкрд░ рдХреБрдЫ рд╕рдордп рдорд╛рдкрди рдЪрд▓рд╛рдпрд╛ред

рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдордп dataSet.entryIndex (рд▓рд╛рдЗрди 76,77) рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рд╡реНрдпрддреАрдд рд╣реЛрддрд╛ рд╣реИред

рдореБрдЭрд╕реЗ рдЧрд▓рддреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ dataSet.entryIndex() рдХреЙрд▓ _minX рдХреЗ рд░реВрдк рдореЗрдВ рдмреЗрдорд╛рдиреА рд╣реИ, _maxX рдорд╛рди рд╣рдореЗрд╢рд╛ minx рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддреЗ рд╣реИрдВ, maxx dataSet.entryIndex() рд╕реЗ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВрдиреЗ 10k рдбреЗрдЯрд╛ рдкреЙрдЗрдВрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдХреИрдВрдбрд▓ рд╕реНрдЯрд┐рдХ рдЪрд╛рд░реНрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдмреА рд╣рд╛рд╕рд┐рд▓ рдХреА рд╣реИ / рдЖрд╕рд╛рдиреА рд╕реЗ рдЬрд╝реВрдо рдХрд┐рдпрд╛ рд╣реИред рдмрджрд▓ рдХреЗ
CandleStickChartRenderer.swift, рд▓рд╛рдЗрди 76,77 рд╕реЗ:

var minx = рдЕрдзрд┐рдХрддрдо (dataSet.entryIndex (рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐: entryFrom, isEqual: true), 0);
var maxx = min(dataSet.entryIndex(entry: entryTo, isEqual: true) + 1, entry.count);

рд╕реЗрд╡рд╛ рдореЗрд░реЗ

рд╡рд░ рдорд┐рдирдХреНрд╕ = рдЕрдзрд┐рдХрддрдо (_minX, 0);
рд╡рд░ рдореИрдХреНрд╕рдПрдХреНрд╕ = _рдореИрдХреНрд╕рдПрдХреНрд╕ + 1;

рдореИрдВрдиреЗ LineChartRenderer рдореЗрдВ рд╡рд╣реА рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдпрд╛ рд╣реИ рдФрд░ 2 рдбреЗрдЯрд╛ рд╢реНрд░реГрдВрдЦрд▓рд╛ (рдкреНрд░рддреНрдпреЗрдХ 10k рдбреЗрдЯрд╛ рдЕрдВрдХ) рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдпреБрдХреНрдд рдХреИрдВрдбрд▓ рд╕реНрдЯрд┐рдХ/рд▓рд╛рдЗрди рдЪрд╛рд░реНрдЯ рджрд┐рдЦрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рд╡рд╛рд╣, рдпрд╣ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдкреНрд░рджрд░реНрд╢рди рд╡реГрджреНрдзрд┐ рд╣реИ @dorsoft !

рдореИрдВрдиреЗ рдЕрднреА рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЕрдкрдиреА рдЖрдВрдЦреЛрдВ рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдПрдХ рдЖрдИрдкреИрдб 2 рдкрд░ 4 рд╕рдВрдпреБрдХреНрдд рдЪрд╛рд░реНрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ 250 рдбреЗрдЯрд╛рдкреЙрдЗрдВрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рддреАрди рдбреЗрдЯрд╛рд╕реЗрдЯ рджрд┐рдЦрд╛рдП рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╡рд╛рдИ рдЕрдХреНрд╖ рдХреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдиреНрдпреВрдирддрдо/рдЕрдзрд┐рдХрддрдо рдЧрдгрдирд╛ рдЕрдм рд╣рдо рд╕рднреА рдЪрд╛рд░реНрдЯреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдХрд╛рдлреА рд╕рд╣рдЬ рддрд░реАрдХреЗ рд╕реЗ рдкреИрди рдФрд░ рдЬрд╝реВрдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рдпрд╣ 60fps рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд░реАрдм рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдкреБрд░рд╛рдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ WAY (!) рдХреЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА, рдкрд╣рд▓реЗ рдХреА рдмрд╛рдд рдХреА рдЧрдИ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ OpenGL рд╕рдорд╛рдзрд╛рди рд╕реЗ рдЕрдзрд┐рдХ рддреЗрдЬрд╝ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рд╣реИ :) рдФрд░ рдлрд┐рд▓ рдХреЗ рд╕рд╛рде рднреА рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
рд╕рдордЭреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рд╣реИ ...

рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдкрдврд╝рддрд╛ рд╣реВрдВ, рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЧрд╣рди рдкрд░реАрдХреНрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ :-)

рдореИрдВрдиреЗ рдХреИрдВрдбрд▓ рдЪрд╛рд░реНрдЯ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдкреАрдЖрд░ рдмрдирд╛рдпрд╛ рд╣реИред
рдСрдЯреЛ рд╕реНрдХреЗрд▓ рдиреНрдпреВрдирддрдо/рдЕрдзрд┐рдХрддрдо рдФрд░ рд╢реВрдиреНрдп рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд╡рд░реНрджреНрдзрди рдХрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдореБрдЭреЗ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрдбрд╝рдЪрди рдорд┐рд▓реА рд╣реИред рдПрдХ рд░реАрдпрд▓рдЯрд╛рдЗрдо рдЪрд╛рд░реНрдЯ рдореЗрдВ рдЪрд╛рд░реНрдЯ рдореЗрдВ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХрдИ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдВ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рдХреИрд▓реНрдХрдорд┐рдирдореИрдХреНрд╕ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ values.append(e) рдареАрдХ рдмрд╛рдж рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ

CalMinMax рдлрд╝рдВрдХреНрд╢рди .forEach рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рдорд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдореБрдЦреНрдп рдереНрд░реЗрдб рдореЗрдВ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореВрд▓реНрдпреЛрдВ рдХреЛ рд▓реВрдк рдХрд░рдиреЗ рдореЗрдВ 60% рд╕реЗ рдЕрдзрд┐рдХ CPU рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рд╣реИред

рдореИрдВ рдХреБрдЫ рдкреНрд░рдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдиреНрдпреВрдирддрдо/рдЕрдзрд┐рдХрддрдо рдЧрдгрдирд╛ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рд╕рд░рдгреА рдХреЗ рдмрдЬрд╛рдп рдореВрд▓ рдХреЗ рд▓рд┐рдП рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред forEach

@danielgindi рдХреГрдкрдпрд╛ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ, рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рднреА рдореВрд▓реНрдпреЛрдВ рдкрд░ рдХреИрд▓реНрдХрдорд┐рдирдореИрдХреНрд╕ рдЖрд╡рд╢реНрдпрдХ рд╣реИ? рдореИрдВ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдФрд░ рдХреЗрд╡рд▓ рджреГрд╢реНрдпрдорд╛рди рдорд╛рдиреЛрдВ рдкрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдиреНрдпреВрдирддрдо/рдЕрдзрд┐рдХрддрдо рд╡рд╛рдИ рдорд╛рдиреЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдиреНрдпреВрдирддрдо/рдЕрдзрд┐рдХрддрдо рдСрдЯреЛ рдЧрдгрдирд╛ рдХреЛ рд╕рдХреНрд╖рдо/рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмреВрд▓рд┐рдпрди рдХрд╛ рдкрд░реНрджрд╛рдлрд╛рд╢ рдХрд░ рд╕рдХреЗрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХреЗрдВред

```
open override func calcMinMax()
{
    guard !values.isEmpty else { return }

    _yMax = -Double.greatestFiniteMagnitude
    _yMin = Double.greatestFiniteMagnitude
    _xMax = -Double.greatestFiniteMagnitude
    _xMin = Double.greatestFiniteMagnitude

    values.forEach { calcMinMax(entry: $0) }
}

```

@samueleperricone рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рдЯрд┐рдХрдЯ

@jjatie рдзрдиреНрдпрд╡рд╛рдж, # 3166 рдЦреБрд▓рд╛

рдореИрдВ iOS рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрди рдЪрд╛рд░реНрдЯ рдореЗрдВ 13000 рд╕реЗ рдЕрдзрд┐рдХ рд░рд┐рдХреЙрд░реНрдб рд▓реЛрдб рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди, рдЪрд╛рд░реНрдЯ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп UI рдХреЛ рдлреНрд░реАрдЬ рдХрд░ рджреЗрддрд╛ рд╣реИред рд╕рд╛рде рд╣реА, рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рддреЛ рдЪрдпрди рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рднреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

heumn picture heumn  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Shunshine07 picture Shunshine07  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

guoyutaog picture guoyutaog  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

JW00332 picture JW00332  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

deepumukundan picture deepumukundan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ