Sitter med en liten del av en applikation. Ja, hur man gör själva beräkningen för att få fram vinkelutslaget, kan du säker 100 gånger bättre än jag. Men däremot själva utformningen av pilen och dess vinkel har jag en klar bild hur jag tycker det skulle vara. Tänk dig ett visarinstrument, då bör ju visaren stå rakt upp om det inte är någon förändring. Är förändringen positiv, antar att det är när c1 > c0, då bör visaren göra ett utslag åt höger, medan när det en negativ förändring, så bör visaren göra ett utslag till vänster. Nej, då har du helt missuppfattat mig. Kan du visa på något system där man använder "gängse princip" Alla ekonomiska som visar förändring med pilar; valutakurser, aktiekurser, etc.Mappning från förändring till vinkel?
Jag har en lista med poster. Varje post har en kostnad. Jag kan få fram "tidigare kostnad", säg c0, och "nuvarande kostnad", säg c1.
Nu skulle jag vilja göra en pil för att lätt konstatera om kostnaden ökar eller inte.
Första tanken är kanske att sätta vinkeln på pilen till const * (c1-c0), men då får man dels en absolut skalning, dels så kan pilen gå bakåt.
För att få relativ skalning (en 50%-ökning ser alltid likadan ut), så är det väl vettigt med const*(c1-c0)/c0, men det kan fortfarande så att säga gå bakåt.
Då kommer man snart på att en arc tan är lämplig. Eftersom det råkar vara i VBA finns ingen atan2, utan bara atan, så jag får hantera specialfallet c0 = 0 manuellt, men det är ok.
Okej, då använder jag atan(const*(c1-c0)/c0), för att få fram en vinkel. Genom att sätta const till 2 får jag en princip att en 50% ökning motsvarar en 45 graders vinkel, och om c0 är noll (eller i övrigt c1>>c0), så får jag pilar som pekar rakt upp eller nästan rakt upp.
Problemet är att jag skulle vilja att pilar även ska kunna peka rakt ner. Om jag får ett fall från c0 till 0, så får jag bara en atan(-c0/c0*const) = atan(-const), vilket blir lite tråkigt. Vad jag är ute efter nu är alltså en princip där följande gäller:
c0 = 0, c1 > 0 => pil rakt upp
c0 > 0, c1 = 0 => pil rakt ner
c0 = c1, => pil åt sidan.
...och där vinkelutslaget är "typ proportionellt" mot den relativa förändringen snarare än den absoluta. =)
c0 och c1 kan naturligtvis aldrig bli <0, men de kan mycket väl vara 0.
Någon som har en idé? Sv: Mappning från förändring till vinkel?
/Fim W.Sv:Mappning från förändring till vinkel?
Jag är ute efter en mycket speciell typ av funktion, det är det jag vill ha. Den ska inte peka uppåt när det inte är förändring, utan åt höger. (Det är gängse princip i alla liknande system, och mycket logiskt.)
Problemet är att jag nu enkelt kan få pilen att peka rakt upp, men absolut inte att få den att peka rakt ner, eftersom priserna alltid är positiva.Sv: Mappning från förändring till vinkel?
/Fim W.Sv:Mappning från förändring till vinkel?