Как настроить пользовательскую систему координат Quartz2D с масштабированием, позволяющим избежать нечеткого рисования?

Эта тема была поцарапана один или два раза, но я все еще озадачен. И Google тоже не был дружелюбным.

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

Таким образом, в основном, в качестве примера, я хочу масштабировать представление так, чтобы, когда я рисую прямоугольник 10х10 (например, 10-дюймовый прямоугольник), я получал прямоугольник 60х60 пикселей.

Это работает, за исключением того, что прямоугольник, который я получаю, довольно размыт. Другой вопрос здесь получил ответ, который объясняет почему. Однако я не уверен, что понял эту причину, и, более того, я не знаю, как это исправить. Вот мой код:

Я установил свою систему координат в моемawakeFromNib пользовательский метод просмотра:

- (void) awakeFromNib {
    CGAffineTransform scale = CGAffineTransformMakeScale(6.0, 6.0);
    self.transform = scale;
}

А вот и моя процедура розыгрыша:

- (void)drawRect:(CGRect)rect {
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGRect r = CGRectMake(10., 10., 10., 10.);
    CGFloat lineWidth = 1.0;
    CGContextStrokeRectWithWidth(context, r, lineWidth);
}

Квадрат, который я получаю, масштабируется очень хорошо, но совершенно нечетко. Играть сlineWidth не помогает: когдаlineWidth устанавливается меньше, становится светлее, но не четче.

Так есть ли способ настроить представление, чтобы иметь масштабированную систему координат, чтобы я мог использовать мои доменные координаты? Или я должен вернуться к реализации масштабирования в моих процедурах рисования?

Обратите внимание, что эта проблема не возникает для перевода или ротации.

Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос