Matematik

Hur datorer ritar sneda linjer (och vad det kan lära oss om livet i stort)

Alice Heiman

Vet du, i detalj, hur datorer lyckas rita diagonala linjer?

Det är faktiskt en hel del drama som sker bakom kulisserna. Faktum är att dagens digitala datorer aldrig kan rita en perfekt diagonal – bara uppskatta den. Allt handlar om att ta små steg i höjdled och i sida på en sådan liten skala att vi får illusionen av en rak linje. 

Men hur vet då datorn, i varje given punkt, om den ska gå i y-led eller x-led?

Skärmen är ett rutnät av pixlar, och vi får bara gå ett steg – antingen upp/ned eller vänster/höger – för att rita våra linjer.

Linjen kan beskrivas med två punkter: (x1, y1) och (x2, y2). Men vi kan också tänka att vi börjar i första punkten och att vi därifrån behöver ta a antal steg i x-led och b antal steg i y-led för att komma till målet. Vi börjar med en pixel där a=b=1 och fortsätter sedan att öka antingen a eller b i varje iteration tills a=dx och b=dy.

Okej, nu är vi nära.

Lutningen på den ideala linjen beskrivs av skillnaden i y-led dividerat med den i x-led, alltså dy/dx. Men vår faktiska lutning i varje given punkt fås genom b/a. Vi kan alltså jämföra dessa lutningar med varandra för att avgöra om vår approximation får en för brant lutning (och vi måste ta ett steg i sidled) eller för liten lutning (då vi måste ta ett steg i höjdled).

I skapandet av linjen dansar pixlarna salsa runt idealbilden – med små korrigeringar upp och ned i varje steg.

Ju mindre pixlar, desto mindre blir stegen – vilket gör att vi kan följa linjen närmare. Det är detta vi kallar högre upplösning.

På liknande sätt kan vi tänka oss att våra värderingar är som linjer i olika riktningar som vi ständigt försöker förhålla oss till.

Våra värderingar är som strålar som pekar i den riktning vi vill vara eller utveckla. De har inget slut och kan inte bli “avklarade”. Ett maraton kan man avsluta, men det krävs ständigt arbete för att hålla sig tränad. Värden är därmed riktlinjer som man hela tiden kretsar runt. Vi kan sällan vara perfekta i linje med våra värderingar. Men vi kan göra handlingar som får oss att röra oss runt dem. Den ideala linjen utgör små krafter på oss när vi avviker. Ger oss en knuff i rätt riktning när vi kommer av oss. 

Komplexiteten uppstår när vi har flera linjer. I flera olika riktningar. 

Hur vet man då vilket steg som är “det rätta”? 

Vilket steg som tar en närmare “målet”?

Precis som med datorns upplösning kan vi också experimentera med storleken av våra handlingar.

Om man har låg upplösning – gör enorma löften och tar för stora steg – kommer man att svaja mer. Ibland får man otroligt brant lutning. Men på samma sätt kan man i nästa stund komma att haverera.  

Om man istället har hög upplösning arbetar man för långsiktighet. Ta små steg, små handlingar som valsar tätt kring sina riktlinjer. För när man arbetar smått är det helt okej att man råkar ta ett snedsteg här och var. Att man missar en dag är inte hela världen. 

För man kan alltid snabbt komma tillbaka till linjen igen.

Så hur ritar datorn sneda linjer? Och hur kommer du att rita din?

Källor som användes i den här artikeln

Schocken, S & Nisan, N. (2005) “Chapter 12: Operating System,” in The Elements of Computing Systems. MIT Press.