Affint rom

Et **affint rom** i matematikken er en utvidelse av et vektorrom hvor punkter og vektorer er mer uavhengige av hverandre. Alle punktene i rommet har samme betydning, og det har derfor ikke noe origo. Punktene kan derfor heller ikke angis ved bruk av posisjonsvektorer som ved bruk av kartesiske koordinater.

Men to vilkårlige punkter kan alltid knyttes sammen med en vektor og definerer en linje. Denne kan parallellforskyves omkring i rommet og på den måten gi ekvivalente vektorer. I motsetning til et euklidsk rom er lengden og vinkler mellom vektorer i et affint rom ikke definerte. Kun forhold mellom avstandene til punkt på samme linje kan bestemmes. Parallellforskyving er den basale operasjon man kan utføre og gir opphav til affin geometri som kan generaliseres til projektiv geometri. Disse geometriene er mer generelle enn euklidsk geometri idet to av Euklids fem aksiomer ikke lenger er gyldige.

Affine relasjoner mellom punkt og vektorer ble først diskutert av Leonhard Euler på midten av 1700-tallet, men vakte liten interesse. Først knapt hundre år senere gjennom arbeidene til August Möbius ble disse tankene tatt opp av andre og videreført. Det affine rom fikk et mer veldefinert fundament spesielt etter at Felix Klein påviste at dets egenskaper kunne utledes matematisk direkte fra egenskaper ved den tilsvarende symmetrigruppen som en del av hans Erlangen-program.

## Punkt og vektorer

I to dimensjoner ser et affint rom ut som et blankt ark hvor man kan tegne inn punkt og rette linjer. Der er ikke noe origo eller koordinatsystem, men hver rett linje man kan tegne inn, angir samtidig retningen til en mulig vektor. De kan parallellforskyves omkring, og mellom to punkt kan det alltid legges en rett linje. Dette rommet  har to dimensjoner og betegnes vanligvis som **A**2. 

Likedan kan man generelt definere et *n*-dimensjonalt, affint rom **A***n* bestående av en mengde punkt og retninger som kan parallellforskyves. To vilkårlige punkt *P* og *Q*&thinsp; kan alltid forbindes med en vektor **v**&thinsp; og uttrykkes ved sammenhengen . Dette kan visualiseres som et rettet linjestykke som starter i punktet *P* og går til punktet *Q*.  Man kan tegne dette som en pil med halen i *P* og spissen i *Q* som vist i figuren.

Omvendt kan man skrive at *Q* = *P* + **v**. Det betyr at punktet *Q* finnes ved å først gå til *P*&thinsp; hvorfra man forskyver seg et rettet stykke **v**. Punktet  ville bety at man forflyttet seg dobbelt så langt fra *P* i samme retning. Dette kan lett generaliseres da hver vektor kan multipliseres med et reelt tall som i alle vektorrom **R***n*. Dette tallet kan være positivt, negativt eller null. Er det reelle tallet , vil  hvor **0**&thinsp; er nullvektoren. Det betyr at vektoren  og tilsvarende for forskyvningen mellom andre, identiske punkt

Vektorer kan man regne med som i normale vektorrom. I tillegg kan man addere et punkt til en vektor som gir et nytt punkt. Derimot kan man ikke uten videre addere to punkt som man kan i et euklidsk rom med posisjonsvektorer. Klare regneregler må formuleres som aksiom, selv om de kan se selvinnlysende ut. For eksempel, fra definisjonen  må man ha at  da den motsatte vektoren   er allerede antatt å eksistere. Derfor må også . På samme måte må derfor  for to vilkårlige punkt *P&thinsp;* og *Q&thinsp;* hvor  **u** nå er en eller annen vektor. Begge sider av relasjonen er her vektorer som vist i figuren. Derfor må også  definere samme punkt for vilkårlige vektorer **u** og **v**.

Disse antagelsene følger som om parentesene ikke fantes. For eksempel, med et tredje punkt  hvor , vil man ha at  slik at  .  Begge sidene av ligningen definerer en vektor, og den er i overensstemmelse med loven for vanlig vektoraddisjon som illustrert i figuren.

Med denne direkte sammenhengen mellom differanser av punkt og ekvivalent vektorer, kan man gjennomføre noen entydige beregninger. Derimot kan vilkårlige punkter ikke uten videre adderes. Det kan kun gjøres når de vektes på en spesiell måte som kalles en *affin kombinasjon* av punktene. På den måten kan man foreta mye mer generelle beregninger i det affine rommet.

## Linjer og affine kombinasjoner

Har man to gitt to punkt *P* og *Q&thinsp;* kan man trekke en linje gjennom disse punktene. Et punkt *X* på linjen vil da være gitt ved å starte i punktet *P* og så bevege seg et stykke langs vektoren (*Q - P*) som forbinder de to gitte punktene som vist i figuren.  Matematisk betyr det at linjen kan parametriseres som . Har parameteren *t&thinsp;* verdien null, gir dette utgangspunktet *P*, mens for  finner man punktet *Q*. Er derimot , ligger punktet *X* utenfor *Q*, mens for  ligger det utenfor *P*.

Denne konstruksjonen av en linje gjør det nå naturlig å definere en ny operasjon som virker på punkt. Det skjer ved å skrive

:  X = P + t(Q - P) = (1 - t) P + t Q 

hvor høyresiden angir en tillatt addisjon av to punkt i et affint rom. Man kan også angi punkt på denne linjen ved en tilsvarende relasjon mellom vektorer basert på et felles referansepunkt *O*. Punktet *P* er forskjøvet fra dette med en vektor  som er dets *posisjonsvektor*. Den tilsvarer at . Defineres på samme måte posisjonsvektorene **r***Q*&thinsp; og  **r***X*, kan punkter på linjen gjennom  *P* og *Q&thinsp;* nå også skrives som

:  \mathbf{r}_X = (1 - t)\mathbf{r}_P + t\mathbf{r}_Q 

Punktet *O&thinsp;* fungerer som et origo, og resultatet er i overensstemmelse med hva man ville skrive for punkter på linjen i et vanlig vektorrom.

### Affine kombinasjoner
Utfra denne betraktningen kan man mer generelt for to punkt *P<sub>1</sub>* og *P<sub>2</sub>&thinsp;* definere den *affine kombinasjonen* av disse to punktene som

:  P = \lambda_1 P_1 + \lambda_2P_2 

når koeffisientene  *&lambda;<sub>1</sub>* og *&lambda;<sub>2</sub>&thinsp;* oppfyller betingelsen . Da er  som er veldefinert ut fra tidligere antagelser. Med denne definisjonen kan man altså addere punkt.

Denne nye operasjonen kan lett utvides til å gjelde for addisjon av et vilkårlig antall punkt  *P<sub>1</sub>, P<sub>2</sub>&thinsp;, ..., P<sub>k</sub>&thinsp;*  i det affine rommet. Da er en  affine kombinasjon  tillatt når betingelsen

:  \lambda_1+ \lambda_2 + \ldots + \lambda_k = 1  

er oppfylt. Koeffisientene *&lambda;<sub>1</sub>, &lambda;<sub>2</sub>&thinsp;, ..., &lambda;<sub>k</sub>&thinsp;* kan i her i prinsippet anta alle positive eller negative verdier eller være null.

Et punkt *P<sub>0</sub>&thinsp;* på linjen mellom punktene *P<sub>1</sub>* og *P<sub>2</sub>&thinsp;* må oppfylle ligningen . Dermed er den affine kombinasjonen  da   med *, * og . De tre punktene *P<sub>0</sub>, P<sub>1</sub>* og *P<sub>2</sub>&thinsp;* sies da å være *affint avhengige* av hverandre. De ligger på samme linje.

Mer generelt sies de *k + 1&thinsp;* punktene *P<sub>0</sub>, P<sub>1</sub>, P<sub>2</sub>&thinsp;, ..., P<sub>k</sub>&thinsp;* å være affint avhengige av hverandre hvis

:  a_0P_0 + a_1P_1 + a_2P_2 + \dots + a_kP_k = 0 

når koeffisientene oppfyller betingelsen

:  a_0 + a_1 + a_2 + \ldots + a_k = 0 

uten at de samtidig alle er lik null. Setter man herfra inn for *a<sub>0</sub>*, gir ligningen mellom punktene det ekvivalente resultatet

:  a_1\mathbf{v}_1 + a_2\mathbf{v}_2 + \ldots + a_k\mathbf{v}_k = \mathbf{0} 

hvor ***v'''<sub>i</sub> = P<sub>i</sub> - P<sub>0</sub>&thinsp;''. Disse ''k&thinsp;'' vektorene må derfor være [[vektorrom|lineært avhengige]] av hverandre når de tilsvarende punktene er affint avhengige. Det er lett å innse for punkt på en linje. Når alle vektorer refererer seg til et fast punkt som ''P<sub>0</sub>&thinsp;'' her, går det affine rommet '''A'''<sup>n</sup> over til å bli lik [[vektorrom]]met  '''R'''<sup>n</sup>.

==Barysentriske koordinater==

Midtpunktet på linjen på linjen  er gitt ved punktet  som tilsvarer . Dette punktet tilsvarer [[massesenter]]et eller ''barysenteret'' for de to punktene ''P&thinsp;'' og ''Q'' når de antas å ha den samme massen. I det mer generelle tilfellet kan man tenke seg at punktet 
''P&thinsp;'' har massen 1 - ''t'' og punktet ''P&thinsp;'' har massen ''t''. Massesenteret vil nå være gitt som  eller i vektornotasjon . Koeffisientene  og  blir kalt for affine eller normaliserte, [[barysentriske koordinater]] (''&lambda;''<sub>1</sub>, ''&lambda;''<sub>2</sub>)&thinsp; langs linjen da de oppfyller . Midtpunktet mellom punktene har derfor koordinatene , mens de gitte punktene ''P&thinsp;'' og ''Q'' er gitt ved henholdsvis (1,0)&thinsp; og (0,1).


Mer interessant er å angi punkt i et affint plan på samme måte. Gitt tre affint uavhengige punkt ''P''<sub>1</sub>, ''P''<sub>2</sub>&thinsp; og ''P''<sub>3</sub>, så er hvert punkt i planet gitt som

: <math> P = \lambda_1 P_1 + \lambda_2P_2 + \lambda_3 P_3</math>

hvor de barysentriske koordinatene (''&lambda;''<sub>1</sub>, ''&lambda;''<sub>2</sub>, ''&lambda;''<sub>3</sub>) oppfyller betingelsen . For gitte verdier av koordinatene kan det tilsvarende punktet finnes ved å beregne massesentrumet for de tre gitte punktene med disse massene. Punkter innen [[trekant]]en som har de tre punktene som hjørner, har alle tre koordinatene postive. For punkter utenfor er minst en av dem negativ. De tre hjørnene har henholdsvis  koordinatene (1,0,0), (0,1,0) og (0,0,1). Punkter på siden av trekanten som ligger motsatt punktet  ''P''<sub>1</sub>, har alle ''&lambda;''<sub>1</sub> = 0. Mer generelt har punkter som ligger på linjer parallelle til sidekanten motsatt  ''P''<sub>1</sub>, samme verdi for koordinaten ''&lambda;''<sub>1</sub>. Tilsvarende gjelder for de andre hjørnene i trekanten og linjer parallelle med deres motsatte sider.

Hvis man tenker seg at de tre hjørnepunktene er bevegelige og flyttes omkring i planet, vil formen til trekanten forandres. Punkter gitt som skjæringspunkt mellom forskjellige linjer forankret i trekantens sider, vil dermed også forskyves. Men deres barysentriske koordinater forblir uforandret. Slike deformasjoner av trekanten kalles ''affine transformasjoner''.

Mange geometriske beregningsoppgaver kan løses enklere ved bruk av slike koordinater. Blant annet finner de en utstrakt bruk innen [[datagrafikk]]. I rom med høyere dimensjoner defineres barysentriske koordinater på tilsvarende måte.

==Origo og koordinatisering==

Komponenentene til forskyvningsvektoren '''v'''&thinsp; er uavhengig av noe [[origo]]. Den sier kun hvor langt man skal bevege seg og i hvilken retning. Hvis vektoren fremstilles som en pil, kan denne plasseres hvor som helst i rommet uten at komponentene forandres. Disse vektorene er såkalte ''frie vektorer''.

Noe annet er det å angi koordinatene til et punkt ''P''. Disse må alltid bestemmes i forhold til et annet punkt ''O&thinsp;''. Man kan da foreta en ''koordinatisering'' av rommet med ''O&thinsp;'' som [[origo]]. Har rommet ''n'' dimensjoner, velger man i tillegg ''n'' affint uavhengige punkt  ''P''<sub>1</sub>, ''P''<sub>2</sub>, ..., ''P''<sub>''n''</sub>&thinsp; slik at  man kan skrive

: <math> P = O +  x_1(P_1 - O) + x_2(P_2 - O) + \ldots + x_n(P_n - O) </math>

for et passende valg av koeffisienter  ''x''<sub>1</sub>, ''x''<sub>2</sub>, ..., ''x''<sub>''n''</sub>. Vektorene '''e'''<sub>''I''</sub> = (''P''<sub>''I''</sub> - O)&thinsp; danner nå et sett med ''n&thinsp;'' lineært uavhengige [[vektorrom|basisvektorer]]. For dette valget av referansepunkt er ''posisjonsvektoren'' til punktet ''P&thinsp;'' nå . Alternativt kan hvert slikt punkt også angis ved koordinater som  hvor den første koordinaten ''x''<sub>0</sub> henviser til origo og oppfyller .

Med dette valget av basisvektorer  kan nå en vilkårlig vektor '''v'''&thinsp; skrives som

: <math> \mathbf{v} = v_1\mathbf{e}_1  +  v_2\mathbf{e}_2  +  \ldots + v_n\mathbf{e}_n  </math>

hvor koeffisientene ''v''<sub>1</sub>, ''v''<sub>2</sub>, ..., ''v''<sub>''n''</sub>&thinsp;&thinsp; er dens [[vektorrom|komponenter]] i denne basisen.

==Affine transformasjoner==

Hvis man ved koordinatiseringen av et affint rom velger et annet origo, vil koordinatene til hvert punkt forandres. Dette vil være en ''koordinattransformasjon''. Denne kan gjøres mer generell ved også å velge et nytt [[vektorrom|basissystem]] for vektorene etter flytting av origo. Man har da valgt et nytt ''referansesystem''.

Kalles det nye origo for ''O'&thinsp;'', vil et vilkårlig punkt ''P&thinsp;&thinsp;'' i forhold til dette ha koordinater gitt ved vektoren . Den siste vektoren her representerer en forskyvning eller ''translasjon'' av origo som kan skrives som . Med dette nye origo kan man også benytte et nytt [[vektorrom|basissystem]]

: <math> \mathbf{e}'_j = \sum_{i=1}^n A_{ij} \mathbf{e}_i </math>

hvor koeffisientene ''A<sub>ij</sub>'' danner en ''n&times;n&thinsp;'' invertibel [[matrise]] ''A''. Hvert slik matriseelement kan betraktes som ''i'' -&thinsp;te komponent av vektoren ***e**'<sub>j</sub>''. De nye koordinatene til punktet ''P&thinsp;&thinsp;'' følger nå fra vektoren  som gir

: <math>  x_i = \sum_{j=1}^n A_{ij} x'_j + b_i </math>

Det er den mest generelle formen for en [[affin transformasjon]]. Mer kompakt kan den skrives på matriseform som **x** = ''A''&thinsp;**x'&thinsp;** + **b**. Den inverse transformasjonen er da  hvor ''A''<sup>−1</sup>&thinsp; er [[matrise|den inverse matrisen]] til ''A''.

===Aktive transformasjoner===


I denne utledningen er den affine transformasjonen funnet ved å betrakte hvordan koordinatene til et og samme punkt forandrer seg ved valg av referansesystem. Dette kalles for en ''passiv affin transformasjon''. Punkter og linjer forblir uforandret, de beskrives bare ved andre koordinater.

Ved en ''aktiv affin transformasjon''  benytter man samme referansesystem, men transformerer hvert punkt i det affine rommet over til et annet punkt i det samme rommet med uforandret koordinatisering. Transformasjonen må være slik at linjer forblir linjer og affine kombinasjoner av punkt må forbli affine. Derved vil ikke de barysentriske koordinatene forandres. Og parallelle linjer forblir parallelle. Men vinkler og lengder av linjesegment vil forandres. Betrakter man et punkt  ''P&thinsp;'' med posisjonsvektor ***x***, vil det gå over i et nytt punkt  ''P'&thinsp;'' med posisjonsvektor  ***x***'. På samme måte som for de passive transformasjonene, vil dette transformerte punktet få nye koordinater som kan skrives som

: <math>  x'_i = \sum_{j=1}^n A_{ij} x_j + b_i </math>

Her er igjen ''A'' er en ''n&times;n&thinsp;'' invertibel [[matrise]] og ''b<sub>i</sub>&thinsp;'' er komponentene til en translasjonsvektor ***b***. På matriseform kan transformasjonen skrives som ***x** = A&thinsp;*'x** + **b***. Mer kompakt kan den angis som ''(A,'''b''')''. Den virker på posisjonsvektorer som her tenkes å være [[matrise|kolonnematriser]].

To påfølgende transformasjoner ''(A<sub>1</sub>,'''b'''<sub>1</sub>)&thinsp;'' og  ''(A<sub>2</sub>,'''b'''<sub>2</sub>)&thinsp;'' gir opphav til en transformasjon
. Da dette er en ny, affin transformasjon , danner de tilsammen en [[gruppe (matematikk)|matematisk gruppe]]. I det spesielle tilfellet at matrisen ''A'' er lik med [[matrise|enhetsmatrisen]], er transformasjonen en ren translasjon. Enhver geometrisk figur vil da ganske enkelt forflyttes uforandret i planet eller rommet.

Som et eksempel i to dimensjoner kan man betrakte den affine transformasjonen

:<math>\begin{bmatrix} x' \\ y'\end{bmatrix} = \begin{bmatrix} 0&1\\ 2&1 \end{bmatrix}\begin{bmatrix} x \\ y\end{bmatrix} + 100 \begin{bmatrix} -1 \\ -1 \end{bmatrix}</math>

Origo i punktet (0,0) blir transformert til punktet (-100,-100), punktet (0,100) går til origo, mens punktet (200,0) går til (-100,300). Disse tre punktene definerer en trekant. Som vist i figuren, vil trekanten etter transformasjonen få en ny form.

==Homogene koordinater==

Affine transformasjoner blir mye benyttet i [[datagrafikk]] og [[robotikk]]. For å kunne gjøre beregningene så raskt som mulig, er det en stor fordel å kunne utføre dem som rene matrisetransformasjoner i stedet for å benytte den inhomogene formen  ***x**' = A&thinsp;**x** + **b***. Det muliggjøres ved å gi posisjonsvektorene en ekstra komponent som kan settes lik en. Da tar transformasjonen formen

:<math>
\begin{bmatrix} \mathbf{x}' \\ 1 \end{bmatrix} = \begin{bmatrix} A & \mathbf{b} \ \\ \mathbf{0}^T & 1 \end{bmatrix} \begin{bmatrix} \mathbf{x} \\ 1 \end{bmatrix}
</math>

hvor ***0**<sup>T</sup>&thinsp;'' er den [[matrise|transponerte]] av nullvektoren i rommet. Den inngår i ''den utvidete transformasjonsmatrisen''. To påfølgende transformasjoner er nå gitt direkte ved [[matrise]]produktet

: <math>  \begin{bmatrix} A_2 & \mathbf{b_2} \ \\ \mathbf{0}^T & 1 \end{bmatrix}\begin{bmatrix} A_1 & \mathbf{b_1} \ \\ \mathbf{0}^T & 1 \end{bmatrix} = 
\begin{bmatrix} A_2A_1 & A_2\mathbf{b_1} + \mathbf{b}_2\ \\ \mathbf{0}^T & 1 \end{bmatrix}
</math>

Her går det tydelig frem at resultatet er en ny, utvidet transformasjonsmatrise av nøyaktig den formen som tilsier at den representerer en affin transformasjon.

Gis en posisjonsvektor en slik ekstra komponent ved tilordningen

: <math> \mathbf{x} \rightarrow \begin{bmatrix} \mathbf{x} \\ 1 \end{bmatrix} </math>

kalles de ''n + 1'' komponentene for **homogene koordinater**. For en ren translasjonsvektor vil den ekstra koordinaten ha verdien null slik at den representeres som

: <math> \mathbf{v} \rightarrow \begin{bmatrix} \mathbf{v} \\ 0 \end{bmatrix} </math>

Når den utvidete transformasjonsmatrisen virker på denne, er resultatet da ganske enkelt at  ***v** = A*'v*** da dens komponenter ikke påvirkes av translasjonene.

De homogene koordinatene har sin naturlige plass i [[projektiv geometri]] hvor en affin transformasjon er en spesiell, [[projektivt plan#Projektive transformasjoner|projektiv transformasjon]]. Den ekstra koordinaten opptrer da naturlig fordi at det affine rommet blir utvidet med ekstra punkt i det uendelige.

===Geometrisk bilde===

Kort sagt er et affint rom et [[vektorrom]] uten et [[origo]]. Derfor er for eksempel enhver linje i planet '''R'''<sup>2</sup>&thinsp; gjennom origo ''(0,0)&thinsp;'' ikke noe affint rom, men punktene på en linje utenom ligger i det affine rommet '''A'''<sup>1</sup>. Alle punkt ''P = (x,y)'' på denne linjen kan angis som   hvor  er et vilkårlig punkt  og   er en vektor i '''R'''<sup>2</sup>&thinsp; hvis tilsvarende pil har en helning gitt ved ''k''. Denne affine linjen har ligningen  og hvilket som helst punkt på den kan velges som origo. Differansen mellom to punkt i dette rommet er nå en ren vektor, .

I det tredimensjonale vektorrommet  '''R'''<sup>3</sup>&thinsp; er på tilsvarende vis hvert plan som går utenom origo ''(0,0,0),'' et affint rom  '''A'''<sup>2</sup>. Velges dette å være ''z = 1&thinsp;'' som er parallelt med ''xy''&thinsp;- planet og går gjennom punktet (0,0,1), kan alle punkt ''P&thinsp;'' i dette planet angis som . Differansen mellom to punkt blir da av formen , og man har en koordinatisering som ved bruk av homogene koordinater. I dette bildet befinner de affine punktene seg i planet , mens vektorene ligger i planet .

==Løsningsrom for lineære ligninger==

Affine rom oppstår som løsningsmengden for et inhomogent, [[lineært ligningssystem]]. For to lineære ligninger med tre ukjente vil hver ligning beskrive et plan i det tredimensjonale rommet '''R'''<sup>3</sup>. Løsningene ligger da på skjæringslinjen mellom disse to planene såfremt de ikke er parallelle til hverandre. Denne linjen er da det endimensjonale, affine rommet '''A'''<sup>1</sup>.

Mer generelt kan man betrakte ''m&thinsp;'' lineære ligningen i det ''n''-dimensjonale rommet '''A'''<sup>n</sup>. Dette ligningssystemet kan skrives kompakt som   hvor ''A'' er ''m&times;n&thinsp;'' matrise med koffesientene til de ''n&thinsp;'' ukjente som inngår i [[matrise|kolonnevektoren]] ***x***. De inhomogene leddene i ligningssettet inngår i kolonnevektoren ***b***.

Løsningsrommet til det inhomogene ligningssystemet er tett forbundet med [[lineær transformasjon|nullrommet]] til [[matrise]]n ''A''. Det kan bestemmes fra det homogene ligningssettet  som i alminnelighet vil ha ''p&thinsp;'' lineært uavhengige løsninger . De utspenner et [[vektorrom]] med dimensjon  som er [[lineær transformasjon|nullrommet]] til matrisen ''A&thinsp;'' som antas å ha [[lineær transformasjon|rangen]] ''r''.

For å finne de generelle løsningene til de opprinnelige ligningene, behøver man i tillegg en spesiell eller ''partikular løsning'' ***x*'<sub>0</sub>&thinsp;* til det inhomogene ligningssystemet . Den kan finnes ved standard bruk av for eksempel Gauss-eliminasjon eller andre systematiske metoder. Den generelle løsningen kan da skrives på formen

:  \mathbf{x} = \mathbf{x}_0 + \lambda_1\mathbf{v}_1 + \lambda_2\mathbf{v}_2 + \ldots + \lambda_p\mathbf{v}_p 

hvor *&lambda;<sub>i</sub>&thinsp;* er vilkårlige koeffisienter. Løsningene angir derfor punkt i et *p&thinsp;*-&thinsp;dimensjonalt, affint rom hvor de ubestemte konstantene *&lambda;<sub>i</sub>&thinsp;* spiller rollen som koordinater.

## Litteratur

* G. Fischer, *Analytische Geometrie*, Vieweg Verlag, Wiesbaden (2001). ISBN 978-3-528-67235-5.
* D.J. Struik, *Lectures on Analytic and Projective Geometry*, Dover Publications, Inc., New York (2011). ISBN 0-486-48595-1.

## Eksterne lenker

* J. O'Connor, Geometry and Topology, forelesninger ved St. Andrews University.
* J. Gallier, [ftp://ftp.cis.upenn.edu/pub/papers/gallier/geomath2.pdf Basics of Affine Geometry] , forelesning i Computer Science ved University of Pennsylvania.