C# yavaşça renk değiştirme

ressh

Kilopat
Katılım
12 Mart 2021
Mesajlar
3.548
Makaleler
2
Çözümler
46
Yer
Türkiye
Butonun üzerine gelince butonun rengi R253, G156, B161'den R255, G205, B210'ye değişsin istiyordum yaptım ama bunu akıcı yapmasını istiyorum çat diye değil. Nasıl yapabilirim?
 
Senin için kodu yazamayacağım ama mantık olarak yardımcı olabilirim


Ben olsam öncelikle R G B değerlerin farklarını alırdım.
Kod:
diffRed = end[0] - start[0]
diffGreen = end[1] - start[1]
diffBlue = end[2] - start[2]

Bu sayede başlangıç değerine fark'ı ekleyince sonuç değerine ulaşabiliriz. I.E:
253+2=255

Bir aralık sayısı belirledikten sonra (bu örnekte 10 olsun) daha sonra yazacağım loop için sayıların kaçar artacağını bulabilirim:
Kod:
step = 10
incrRed = roundUp(diffRed / step)
incrGreen = roundUp(diffGreen / step)
incrBlue = roundUp(diffBlue / step)

Burada yukari yuvarlamamin sebebi, kırmızı kanaldaki gibi aradaki fark, aralık sayısı için çok az olabilir RGB sisteminde ondalık değerler kabul edilmediğinden, yukarı yuvarlıyorum.

Buradan sonra bir loop içerisinde tüm renk kanallarına ilgili renk değişkenini ekleyebilirsin.
 

Technopat Haberler

Yeni konular

Geri
Yukarı