여기실제로 CAGradientLayer를 따라 한 점에서 색을 "계산"하시겠습니까?
var gradientLayer = CAGradientLayer()
func setup() {
C = some complicated array of CGColors
L = some complicated array of NSNumber (mono' increasing)
gradientLayer.colors = C
gradientLayer.locations = L
gradientLayer.startPoint = CGPoint(x: 0, y: 0.5)
gradientLayer.endPoint = CGPoint(x: 1, y: 0.5)
layer.insertSublayer(gradientLayer, at: 0)
}
... .locations 배열 (과 일치하는 색상 하나) 수십 또는 항목의 수백의를 가질 수 물론 주, 흥미로운 일이 당신이 보통이 있다고 문제의 핵심.
OK - iOS는 다양한 색상을 통해 소용돌이 치는 그라디언트를 완벽하게 렌더링합니다.
이제 "0.3437 지점에서 무엇이 색상인가요?"라고 묻습니다.
어떻게 알 수 있습니까?
CAGradientLayer
에 침을 뱉어 낼 방법이 있습니까?
반대로 (CAGradientLayer를 사용하지 않고) C 및 L에서 보간을 계산하는 방법이 있습니까?
(PS는, 그래, 난 당신이 렌더링에서 픽셀 색을 읽을 수 알고 있어요,. 여기가 아닌 질문) 나는 CAGradientLayer
생각하지 않는다
아! 그건 너의 시간 낭비 였어, 타와 - 미안해. .startPoint, .endPoint는 아무것도 아닙니다. 문제는 .locations 배열에있는 수십 개의 점을 상상해보십시오 !!! – Fattie
@Fattie 괜찮습니다. 알고리즘을 업데이트하여 여러 점을 허용 할 수 있습니다. 그렇지 않으면 귀하의 질문에서 언급 한 것처럼 픽셀을 얻는 것이 유일한 방법이라고 생각합니다. – TawaNicolas