NSAffineTransform - Рисование осей с помощью NSRect - PullRequest
0 голосов
/ 04 ноября 2018

Учитывая NSrect, как я могу нарисовать оси координат, но сохраняя правильное представление?

с помощью следующего кода я могу центрировать свои оси в середине моего обзора

     NSRect funcRect= {-50,-50,50,50};
     [tf translateXBy:[self bounds].size.width/2
                  yBy:[self bounds].size.height/2];

      [tf scaleXBy:[self bounds].size.width/funcRect.size.width
               yBy:[self bounds].size.height/funcRect.size.height];
      [tf concat];

Затем я использую NSBezierPath, чтобы нарисовать ось. см .: i.imgur.com/rT7M5WX.jpg

Но при условии, что мой NSrect отличается, например:

NSRect funcRect= {-5,-5,15,30};

Как я могу применить преобразование af, чтобы оси были нарисованы в правильном положении моего вида, а не в середине всегда см .: i.imgur.com/Z2aBcbE.jpg

Код моей оси рисования: ...

    NSrect * aPoint;
    aPoint.x = funcRect.origin.x;
    aPoint.y = 0;

    [drawer moveToPoint:aPoint];
    while (aPoint.x <= funcRect.origin.x + funcRect.size.width)
    {
        [drawer lineToPoint:aPoint];
        aPoint.x += 1;
    }
    [drawer stroke];
    ...
...