Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Dobrý den. Dělám program na přechod barev a v něm řeším matematický problém. Barvu v programu reprezentuje číslo od 0 do 255. Potřebuju, aby se mně k první barvě ze začátku přičítalo málo a ke konci se hodnota průběžné barvy blížila barvě 2 (když to zaokrouhlím bude to barva 2). - Grafem je to taková hokejka.
Mám například:
První barva - 30
Druhá barva - 180
Počet barevných řádků - 120
A chci zpočítat například 77 řádek.
Kdyby to neměl být postupný přechod (hokejka), řešil bych to takhle:
dílek barvy=(Druhá barva-První barva)/Počet barevných řádků
dílek barvy=(180-30)/120=1,25
77 řádek = dílek barvy * 77
77 řádek = 1,25 * 77
77 řádek = 96,25
-------------------------
-------------------------
Ale má to být postupný přechod, takže vzorec bude jiný a já nevím jaký. Pomůžete mi?
Offline
↑ jklasdf:
Pokud ti nestačí lineární interpolace, kterou ve svém příspěvku navrhuješ, potřebuješ znát více než jen krajní body vyplňovaného intervalu. Jedině tak můžeš hladce navázat na stávající průběh barevné škály.
Něco o interpolacích je např. zde http://en.wikipedia.org/wiki/Interpolation
Offline
medvidek napsal(a):
↑ jklasdf:
Pokud ti nestačí lineární interpolace, kterou ve svém příspěvku navrhuješ, potřebuješ znát více než jen krajní body vyplňovaného intervalu. Jedině tak můžeš hladce navázat na stávající průběh barevné škály.
Zkusím nové zadání:
První barva - 0
Druhá barva - 254
Počet barevných řádků - 60
10. řádek: 66
30. řádek: 105
A chci najít vzorec pro spočítání dalších řádků.
Napadlo mně, že by to mohla být exponenciální funkce (?????) a tak jsem zkusil soustavu tří rovnic, ale neumím ji spočítat a ani nevím, jestli to řeším správně:
Ab+c*10=66
Ab+c*30=127
Ab+c*60=254
To b+c*10 má být napsané malíma písmenama vedle A nahoře (tak, jak se píše např. á na druhou)
Offline
↑ jklasdf:
Myslíš přeložit křivkou
?
Doporučuji načrtnout graf, kde na vodorovné ose budou hodnoty od 1 do 60, na svislé ose budou ty barevné intenzity od 0 do 255. Budeš tam tedy mít jen několik málo bodů. Máš např. představu o té křivce, jakou by měla mít derivaci (sklon) v krajních bodech x=0 a x=60 ?
Pokud by to měla být exponenciála (hokejka :-)) zvol spíš
.
EDIT:
Pokud to má mít v bodě 0 hodnotu 0, ještě přidej aditivní člen
. Pak řeš 3 rovnice pro 3 neznámé. 2 body jsou krajní, takže si můžeš zvolit jen jeden někde mezi nima v místě, kde chceš aby ta křivka procházela. Exponenciála ti více neumožní.
Offline
Udělal jsem si graf a zjistil, že je to jinak než jsem si myslel - ze začátku velké skoky, ke konci po jedničkách:
x y
0 0
1 0
2 11
3 22
4 33
5 43
6 49
7 55
8 60
9 66
10 72
11 77
12 83
13 89
14 94
15 100
16 106
17 112
18 117
19 123
20 129
21 135
22 140
23 145
24 151
25 157
26 162
27 168
28 173
29 178
30 182
31 187
32 192
33 196
34 201
35 205
36 209
37 213
38 216
39 220
40 223
41 226
42 229
43 232
44 234
45 237
46 239
47 241
48 243
49 244
50 246
51 247
52 249
53 250
54 251
55 252
56 253
57 254
Offline
↑ jklasdf:
To nevadí, lze to i tak přeložit exponenciálou. Na následujícím obrázku je jako příklad exponenciála procházející body (0;0),(30;182) a (57;254). Tyto body byly použity pro výpočet koeficientů A, B, k.
Offline
Prosím, jestli by jste mi ještě mohl napsat postup řešení té soustavy rovnic. Zatím jsem zjistil akorát, že místo B můžu napsat -A. Co všechno můžu dělat s logaritmy mi není moc jasné.
0 = A*e na (k*0) - A
182 = A*e na (k*30) - A
254 = A*e na (k*57) - A
----------------------------------
Offline
↑ jklasdf:
Omlouvám se, nějak mi ten tvůj dotaz utekl. Tu soustavu jsem řešil numericky.
Pokud si ovšem zvolíme ty tři body tak, aby platilo
, bude řešení snadné.
Pak to lze zapsat následovně:


Po menší úpravě


Z první rovnice dosadíme do zbývajících dvou, tím vyloučíme 


Nyní po dosazení z první do druhé rovnice bude
Tam už zbyla jen neznámá
, kterou lze vyjádřit
Výpočet
a nakonec
je už snad zřejmý.
Offline
Stránky: 1