Een keertje een algemeen topic van mij. Niet een heel specifiek probleem, maar een doel waar meerdere oplossingen voor zijn. Ik post het hier omdat jullie het denk ik ook wel leuk vinden om over na te denken.
Het gaat om het maken van een klok. Nu is dit niet zo'n heel groot probleem: in pseudocode, wat een secondewijzer laat lopen:
En klaar is de programmeur, maar de grafisch ontwerper wil toch wat meer. Nu is het laten zien van een wijzer ipv een lijntje en een mooie wijzerplaat als achtergrond ook niet heel moeilijk.
Wat wel lastig is, is het effect nabootsen van een klok waarbij de wijzer een impuls krijgt naar de volgende stand. Dus een grote wijzer die bijvoorbeeld op 12 staat, moet op 1 / 5 tussen de 12 en de 1 gaan staan. Je moet denken aan een stationsklok, daarvan springen de wijzers (of sprongen, met die hele nieuwe gaat het allemaal weer veel te modern) steeds naar het volgende streepje, waarna ze even schommelen om dat streepje, ze staan niet in een keer stil. Elke keer is het dus een soort van metronoom, maar dan eentje die alleen bij de eerste beweging aangedreven wordt, en dus stil komt te staan.
Mogelijke aanpak:
Je pakt niet aan zoals in bovenstaand voorbeeld, maar je maakt van de wijzers objecten, die je een impuls geeft op elke tijdseenheid dat zij in beweging moeten komen, je laat dit impuls doorlopen totdat de wijzer de beoogde positie heeft bereikt en je laat de wijzer zelf, mbv wat natuurkunde, om de positie 'dansen'. Mooi bij deze manier is dat je evt ook nog de zwaartekracht mee kan nemen en allerlei parameters kan zetten, zoals gewicht van de wijzer, kracht van de impuls, gewichtverdeling van de wijzer, etc...
Hoe zouden jullie dit aanpakken? Is er een makkelijkere aanpak? Heeft iemand dit al eens succesvol gemaakt?
Het gaat om het maken van een klok. Nu is dit niet zo'n heel groot probleem: in pseudocode, wat een secondewijzer laat lopen:
code:
1
2
3
4
5
6
7
8
| setAchtergrond(wit); x = 0; y = 0;
while(true)
{
t = (getSeconden() / 60) * 2 * pi;
drawLine(0,0,x,y,wit);
x = sin(t); y = cos(t);
drawLine(0,0, x, y, zwart);
} |
En klaar is de programmeur, maar de grafisch ontwerper wil toch wat meer. Nu is het laten zien van een wijzer ipv een lijntje en een mooie wijzerplaat als achtergrond ook niet heel moeilijk.
Wat wel lastig is, is het effect nabootsen van een klok waarbij de wijzer een impuls krijgt naar de volgende stand. Dus een grote wijzer die bijvoorbeeld op 12 staat, moet op 1 / 5 tussen de 12 en de 1 gaan staan. Je moet denken aan een stationsklok, daarvan springen de wijzers (of sprongen, met die hele nieuwe gaat het allemaal weer veel te modern) steeds naar het volgende streepje, waarna ze even schommelen om dat streepje, ze staan niet in een keer stil. Elke keer is het dus een soort van metronoom, maar dan eentje die alleen bij de eerste beweging aangedreven wordt, en dus stil komt te staan.
Mogelijke aanpak:
Je pakt niet aan zoals in bovenstaand voorbeeld, maar je maakt van de wijzers objecten, die je een impuls geeft op elke tijdseenheid dat zij in beweging moeten komen, je laat dit impuls doorlopen totdat de wijzer de beoogde positie heeft bereikt en je laat de wijzer zelf, mbv wat natuurkunde, om de positie 'dansen'. Mooi bij deze manier is dat je evt ook nog de zwaartekracht mee kan nemen en allerlei parameters kan zetten, zoals gewicht van de wijzer, kracht van de impuls, gewichtverdeling van de wijzer, etc...
Hoe zouden jullie dit aanpakken? Is er een makkelijkere aanpak? Heeft iemand dit al eens succesvol gemaakt?
My opinions may have changed but not the fact that I am right ― Ashleigh Brilliant