UPPDATERING 2021-03-13
Idag gick all min produktiva energi åt till jobb, men jag vaknade i varje fall och kom ihåg hur den sista delen av min isometri-matte hängde ihop.
Alltså, stegen man gör när man vill förvandla en rak kvadrat till en isometrisk platta är alltså följande:
- Minska höjden till 80%
- Använder Shear-funktionen med gradtalet man får om man räknar ut arctan(2) minus arctan(0.5). Skälet till att det är just arctan(2) och arctan(0.5) är för att det är skillnaden mellan vinkeln som är just nu och vinkeln som vi vill ha. Arctan(2) är det för att vi har arctan(2/1)… Det har med proportionerna mellan bredden och höjden på de isometriska plattorna, okej? Jag kan inte förklara det här utan bilder.
- Och så roterar vi hela grejen moturs arctan(0.5) grader, så får vi den fina isometriska effekten där den romb vi byggt ställs på ett av sina hörn sådär snyggt.
- Resten är cleanup.
Men varför 80%? Det fanns i mina gamla illustrator-actions men jag kunde inte minnas hur fasen jag kom fram till det.
Men i morse vaknade jag och visste hur. Varning: matte. Dessutom från nån som egentligen inte kan matte. Eller ja, ligger nånstans mellan de som är riktigt dåliga på och avskyr matte, och de som kan matte på riktigt. Jag var estet på gymnasiet, liksom.
Det vi vill är ju att
h efter att vi shearat ska vara lika lång som en av sidorna på ursprungs-kvadraten. För botten-kanten har ju inte ändrats, och ska det vara isometriskt så ska alla kanter vara lika långa. Men om vi bara shear:ar blir h för lång, för shear påverkar inte höjden.
Så det vi vill ha är förhållandet mellan 1 (originalhöjd) och
a (målhöjd). 1 känner vi till. Hur räknar vi ut
a?
Jo alltså, vi plockar fram gamla socka-toa. Eller ja, SOH CAH TOA (ja, jag har lärt ut trigonometri till elever genom att be dem föreställa sig strumpor i toaletter).
Vi har inte
o, så varken SOH eller TOA är relevanta, de går inte att använda.
CAH är alltså
cos(x) = a / h där
x är vinkeln,
a är sidan som är precis vid vinkeln (
o är den på motsatt sida), och
h är hypotenusan.
Och om
cos(x) = a / h så är ju
cos(x) × h = a. Och
h – som är den önskade längden på den snedställda kanten – är ju 1. Och multiplicera med ett är ju ingenting.
Så allt vi behöver är egentligen
cos(x) – det är allt. Och
x vet vi vad det är – det är ju så mycket vi shearar med:
arctan(2) - arctan(0.5).
Så formeln för att räkna ut a blir:
a = cos(arctan(2) - arctan(0.5))
Och stoppar man in "cos(arctan(2) - arctan(0.5))" i google så säger Google, hjälpsamt: 0.8.
Så om sidan är 1 och
a är 0.8 så ska vi alltså minska höjden med 80%.
Låt ingen påstå att trigonometri inte är användbart utanför klassrummet! Mitt vanliga exempel brukar vara datorspel, där det ju generellt är väldigt användbart även om man inte ska göra speciellt matematiskt avancerade grejer. Men uppenbarligen är det också väldigt användbart när man gör isometriska rollspelsillustrationer =)
Det är också sånt här jag vill kunna göra till actions eller macros. Vilket är anledningen till att Affinity Designer inte riktigt är redo att hjälpa mig ännu.
En vacker dag ska jag hitta det vektorillustrations-program jag drömmer om. Det som är som ett parametriskt CAD-program när det gäller att skapa former och relationer mellan olika former, men som är som CSS eller något liknande när det gäller att definiera hur saker ska se ut. Det känns som att det
borde kunna finnas…