Как настроить пользовательскую систему координат 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
устанавливается меньше, становится светлее, но не четче.
Так есть ли способ настроить представление, чтобы иметь масштабированную систему координат, чтобы я мог использовать мои доменные координаты? Или я должен вернуться к реализации масштабирования в моих процедурах рисования?
Обратите внимание, что эта проблема не возникает для перевода или ротации.
Спасибо