이 주제는 한 두 번이나 긁어졌지만 여전히 의아해하고 있습니다. 그리고 구글도 우호적이지 않았다.퍼지 드로잉을 피하는 스케일링으로 사용자 Quartz2D 좌표계를 설정하는 방법은 무엇입니까?
Quartz는 아핀 변환을 사용하는 임의의 좌표계를 허용하므로 실재 좌표를 사용하여 평면도 같은 것을 그릴 수 있어야합니다. 피트.
기본적으로 예를 들어 10x10 직사각형을 그릴 때 (예 : 10 인치 상자를 생각할 때) 60x60 픽셀의 직사각형이 표시되도록 뷰의 크기를 조정하고 싶습니다.
나가 얻는 직사각형을 제외하고 그것은 작동한다, 아주 희소하다. 또 다른 질문은 이유를 설명하는 대답이 있습니다. 그러나 나는 그 이유를 이해하고 왜 그것을 고쳐야할지 모르겠다. 내 awakeFromNib
사용자 지정보기 방법에 내 좌표계를 설정
: 내가 얻을 사각형이 잘
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGRect r = CGRectMake(10., 10., 10., 10.);
CGFloat lineWidth = 1.0;
CGContextStrokeRectWithWidth(context, r, lineWidth);
}
을 조정됩니다 :
- (void) awakeFromNib {
CGAffineTransform scale = CGAffineTransformMakeScale(6.0, 6.0);
self.transform = scale;
}
그리고 여기 내 그리기 루틴 여기 내 코드입니다 , 그러나 완전히 퍼지. lineWidth
을 가지고 노는 것은 도움이되지 않습니다. lineWidth
이 작게 설정되면 더 밝아 지지만 생기있는 것은 아닙니다.
그래서 도메인 좌표를 사용할 수 있도록 좌표계가 조정 된 뷰를 설정하는 방법이 있습니까? 아니면 드로잉 루틴에서 스케일링을 구현해야합니까?
이 문제는 변환이나 회전에는 발생하지 않습니다.
감사
스케일 인자에 상관없이 라인 폭을 포인트 단위로 설정하려면 '원하는 포인트/스케일 인자 수'로 설정하십시오. 예 : 기본값은 1pt/1x = 1입니다. 당신의 6X 팩터에서 1pt 라인은'1.0/6.0'입니다; 2-pt 라인은'2.0/6.0'이 될 것입니다. –