Tôi đang vẽ một biểu đồ hình tròn bằng cách sử dụng một CAShapeLayer cho mỗi lát của chiếc bánh. Ngay cả khi góc kết thúc của một lát bánh bằng với góc bắt đầu của lát liền kề, khử răng cưa là kết quả của màu nền cơ bản xuất hiện giữa mỗi lát cắt nếu đường viền giữa các lát nằm ở một góc.Vấn đề Antialiasing liền kề CAShapeLayer
Tôi muốn loại bỏ sự chênh lệch nhỏ giữa lát trong khi vẫn sử dụng khử răng cưa nên kết quả giỏ bánh vẫn có vẻ trơn tru. Về mặt khái niệm, có vẻ như có một cách để áp dụng antialiasing cho toàn bộ CALayer và các slice con của nó sau khi tất cả các slice pie được rút ra, điều đó sẽ thực hiện thủ thuật ... Các slice pie sẽ được khử răng cưa vào nhau thay vì vào lý lịch.
Tôi đã chơi xung quanh với nhiều thuộc tính CALayer như tôi có thể nghĩ đến và đang gặp khó khăn khi tìm thêm thông tin về điều này. Bất kỳ ý tưởng?
CẬP NHẬT: Xem câu trả lời của tôi bên dưới.
Cảm ơn rất nhiều cho các phản ứng, Rob. Tôi đã thử giải pháp này tại một thời điểm và đã nhìn thấy hiện vật antialiasing từ tối hơn, lớp bên dưới được antialiased vào nền. Nó xuất hiện như một cạnh tối tinh tế xung quanh biểu đồ hình tròn, đặc biệt đáng chú ý ở mép ngoài của các lát màu sáng hơn. Các giải pháp phụ xuyên tâm tôi đã mô tả dường như hoạt động tốt. – Aaron
@Aaron Khi bạn chống bí danh, bạn kết thúc với một vòng màu + alpha pixel xung quanh hình dạng có màu sắc có hiệu quả bí danh. Làm điều này cho nhiều hình dạng với cùng một phác thảo, khu vực bên trong có hiệu quả của bạn sẽ trông ổn nhưng vùng chống răng cưa của bạn sẽ có màu (n) + màu phủ alpha (n-1) + lớp phủ alpha ... màu (0) + alpha. Điều này giải thích hiệu ứng bạn đang thấy. –