A matematika a tervezésben

Néhányan láthatták, mi történik, ha rossz jelszót ad meg a Mac-en a rendszerbe való bejelentkezéshez. Ahelyett, hogy megmutatná a modális ablakot az OK gombbal, csak egy kicsit jobbra és jobbra húzza az ablakot, mintha fejét fordítaná. Ezenkívül szórakoztató, nem kényszeríti a felhasználót arra, hogy megnyomja az OK gombot.

A feladat: ugyanazt csinálni az E2-ben (az oldal újratöltése nélkül ellenőrizni a jelszót, ez nem probléma, csak animációt fogunk végrehajtani).

Sok tervező és még a programozók olyan rossz barátok, a fizika és a matematika, hogy ha azt szeretnénk, hogy egy elemet a tömeg (azaz. E. Tehetetlenség), vagy végre egy hiteles rángás ablakok, nem tudnak gondolni semmire. Ez szomorú. Szükségem volt egy percre, hogy kidolgozzam egy képletet, még ötet - egy működő forgatókönyvet, majd még ötet, hogy megtaláljam a megfelelő esélyeket.

Az oszcilláció természetesen a sinushoz kötődik, de fokozatosan el kell tűnnünk. Az első dolog, ami velem történt, az volt, hogy a szinuszot egy hiperbolla szorozza: (1 / x) × sin x.

Természetesen egyáltalán nem lengetjük a fejünket, de kellemes ruganyosság lesz.

Limit sin x / x nulla egyenlő az egyik, ami biztosan jobb, mint végtelen, de még mindig azt szeretnék, hogy a 0 pont, az értéke nulla volt, vagy az elején az ablak hirtelen megjelenik száz (például) pixel a jobb, mint volt annak megkezdése előtt animáció. Szükségünk van egy hiperbóra nullára, hogy finom értéket kapjon, majd a 0-val egyenlő 0-os bomlással való szorzás nulla értéket eredményez. Mozgassuk kissé balra a hiperboltot úgy, hogy a töréspontja negatív területre hagyjon, ami nem érdekli: [1 / (x + 1)] × sin x.

Mivel a hiperbola nullára növekszik, ahogy az x nő, de soha nem érte el, a rezgéseink a csillapítás ellenére végtelennek tartanak. Akkor, persze, hogy állítsa le őket, amikor kevesebb, mint egy pixel, de ez sokkal könnyebb valamivel alacsonyabb a túlzás, hogy még mindig elérte a nullát, egy idő után: [1 / (x + 1) - 0,01] × sin x.

Ahhoz, hogy világosabbá tegyük, nézzük meg magát a hiperboltot, szinusz nélkül (1 / (x + 1) - 0.01):

Az 1 balra és a 0,01 alatti váltás a kopaszból történik; miután a forgatókönyv már be van írva, a számok megváltoztatásával és az összes együtthatók összekeverésével fokozhatja a realizmus növelését.

A végső képletben, adott dolgozza át minden 0,01 s, kaptam ezt: [1 / (x 1,25 / 20 + 0,5) - 0,05] × sin (x / 2) × 25.

Hatványozás 1,25 szükség kanyarban egy kicsit túlzás, ami lebomlik túl gyorsan (akkor csak mozgás inkább a bal oldalon, de tetszett).

A tervező, aki nem ismeri a matematikát, kétszer olyan rossz, mint egy tervező, aki ismeri. Természetesen az a hely, a matematika akkor tegye bármilyen más tárgy - irodalom, történelem, orosz nyelv, angol nyelv, biológia, földrajz, programozás, fizika, kémia. Egyébként a listázott elemek nagyobb részét nagyon rosszul ismerem.

Nagyszerű lesz, ha az olvasók megoszthatják példájukat arról, hogy egy objektum ismerete segített nekik jobb terv kialakításában.

Pontosan ugyanaz a probléma megoldódott így:
%% eljárás THeadShaker.ShakeHead (AControl: TControl);
var
InitialLeft: Integer;
I: Integer;
TempShakesCount: Integer;
kezdődik
ha Assigned (AControl), akkor
kezdődik
InitialLeft: = AControl.Left;

az I: = 0 a ShakesCount - 1-hez
kezdődik
AControl.Left: = InitialLeft + ShakeMaxAmplitude - I * ShakeFading;
Application.ProcessMessages;
Alvás (DelayTime);

AControl.Left: = InitialLeft - ShakeMaxAmplitude + I * ShakeFading;
Application.ProcessMessages;
Alvás (DelayTime);
végén;
AControl.Left: = InitialLeft;
végén;
end; %%

odds:
%%
ShakesCount: = 8;
ShakeMaxAmplitude: = 20;
ShakeFading: = 3;
Késleltetés: = 40;
%%
(Kód a Delphi-on)

Remegve remegve tetszik nekem. Nem tudom az igazságot, amíg a megvalósításom hasonlít Makovszkijra, mert láttam ezt a hatást, amikor 5 percig megpróbáltam a mákpiacot.

Ha rugalmas swinget szeretne - jobb a helyes képlet használata (lásd # 4). A rugó / inga / elektromos áram fizikai attenuálása az áramkörben exponenciális. Sin (x) * Exp (-x / 6) az, amire szükséged van, és nullán ez nulla, nem azért, mert felhúzunk, hanem azért is, mert így van a természetben.

Több emberi viselkedést akarok.
Néhány véletlenszerűség a reakció-amplitúdóban, az első pillanatban a "fej lengése" élessége és az önkényes változás iránya.
Valahogy így))

Tudomásul veszem, hogy ha törött a sztereotípia reakció - a reakció, hogy ugyanazt a felhasználói beavatkozás válik különböző, de nem olyan mértékben, hogy tegyük be a kognitív disszonancia. ))
Azonban fennáll annak a veszélye, hogy egy személy helytelen jelszavakat akar beírni a reakció figyelése érdekében. )))

ilyen rövid ingadozási idő alatt lehetőség volt egy sor eltérésre, és megszabadulni a forgatókönyv belsejében található számításoktól. Általában az F = -k / x rugók esetében. De a fej megrázása jobb, ha nem a tavaszi törvény.

A pontosabb tanácsadás többszörözést eredményez.

Kapcsolódó cikkek