Löytyiskö hyviä ehdotuksia värien vaihtamiseen asteittain.
Pitäisi saada tietylle numeroarvoille omat värit ja ne vaihtuisivat astettain toiseen väriin.
Luvut ovat 10-18 yhden desimaalin tarkkuudella.
12 sininen, 13 vihreä, 14 keltainen, 15 punainen.
Eli alkaisi 10:stä ja olisi sininen 12:een toista asti, sitten alkaisi muuttumaan astettain sinisestä vihreäksi kunnes saavuttaisi luvun 13 ja siitä taas vihreästä keltaiseen jne..
Eli
12.0, 12.1, 12.2 ,12.3.......12.9, 13.0
Kymmenellä pykällyksellä väri pitäisi saada sinisestä vihreään tasaisesti.
Tossa olis esimerkkiä mitä tavallaan ajan takaa.
Helppo tapa on muuttaa värin RGB-arvon osia sopivassa suhteessa jokaisella askeleella. Jos aloitusväri on (100, 200, 0), lopetusväri on (150, 0, 50) ja askelia on kuusi, muunnos on ((150 - 100) / 5, (0 - 200) / 5, (50 - 0) / 5) eli (10, -40, 10). Siis ensin väri on (100, 200, 0), sitten (100 + 10, 200 - 40, 0 + 10) eli (110, 160, 10), sitten (110 + 10, 160 - 40, 10 + 10) eli (120, 120, 20) jne., kunnes kuudennella askeleella väri on (100 + 5 * 10, 200 - 5 * 40, 0 + 5 * 10) eli (150, 0, 50) eli lopetusväri. Värin osia on helpointa säilyttää taulukossa, RGB-funktio muuttaa värin piirtokomentojen kelpuuttamaan muotoon ja toisensuuntaiseen muutokseen on ohje täällä. Lue myös tämä.
Tekaisin vielä pikku esimerkin asiasta:
Dim alku(2) As Single, loppu(2) As Single Dim muutos(2) As Single Dim i As Integer, j As Integer, askel As Integer ' aloitusväri (100, 200, 0) alku(0) = 100: alku(1) = 200: alku(2) = 0 ' lopetusväri (150, 0, 50) loppu(0) = 150: loppu(1) = 0: loppu(2) = 50 ' muutosaskel on formin leveys askel = ScaleWidth ' lasketaan muutosarvot For i = 0 To 2 muutos(i) = (loppu(i) - alku(i)) / askel Next ' piirretään väriliuku For j = 0 To askel ' piirretään pystysuora palkki Line (j, 0)-(j, ScaleHeight), RGB(alku(0), alku(1), alku(2)) ' muutetaan väriä kohti lopullista For i = 0 To 2 alku(i) = alku(i) + muutos(i) Next Next
jee
hyvältä näytää, täytyy tosta soveltaa.
Mites ton saa toisin päin? Siis liuku ylhäältä alas? Niinkuin InstallShieldin vanhoissa asennusohjelmissa?
Piirtämällä noita viivoja vaakasuoraan pystysuoran sijasta.
Live (0, j)-(ScaleWidth, j), RGB(alku(0), alku(1), alku(2))
Aihe on jo aika vanha, joten et voi enää vastata siihen.