GDI와 함께 처음부터 그래디언트 브러시를 구현하려고합니다. GDI + 또는 다른 그래픽 프레임 워크를 사용하고 싶지 않습니다. 임의의 방향 (임의의 각도)의 그래디언트를 원합니다. 의사에C++ 및 GDI의 스 캐치에서 다중 경사 브러시를 구현할 때의 문제
내 알고리즘 :
For each pixel in x dirrection
For each pixel in the y direction
current position = current pixel - centre //translate origin
rotate this pixel according to the given angle
scalingFactor =(rotated pixel + centre)/extentDistance //translate origin back
rgbColor = startColor + scalingFactor(endColor - startColor)
extentDistance 사각형의 중심으로부터 전달 라인의 길이 및 기울기 지금까지 확인
좋지 각도와 동일한 경사 갖는다. 나는 이것을 그릴 수 있고 멋져 보인다. 불행히도 회전 비트 때문에 사각형 모서리의 색상이 잘못되었습니다. 결과는 90 도의 배수 인 각도에서만 완벽합니다. 문제는 배율 인수가 사각형의 전체 크기에 비례하지 않는다는 것입니다.
당신이 내 포인트를 얻었는지 확신 할 수 없다. 나의 문제를 시각화하지 않고 설명하기 란 정말로 어렵다.
누구든지 도움이되거나 도움이되는 자료로 리디렉션 할 수 있다면 고맙겠습니다.
입니다. 의사 코드는 정상적으로 보입니다. 따라서 구현의 세부 사항에 문제가있을 수 있습니다. –
글쎄, 지금까지 해왔 던 것을 토대로 볼 때 실제 구현에서는 문제가 있다고 생각하지 않습니다. 내 문제는 내 알고리즘이라고 생각해. 코드는 작동하지만 언급 한 문제로 인해 충분하지 않습니다. 따라서 제가 요구하는 것은 그라디언트 효과를 얻기위한 공식 또는 적어도 테스트 된 알고리즘입니다! –