Inductive definitions for discrete plane geometry. Jean Duprat* - - PowerPoint PPT Presentation

inductive definitions for discrete plane geometry
SMART_READER_LITE
LIVE PREVIEW

Inductive definitions for discrete plane geometry. Jean Duprat* - - PowerPoint PPT Presentation

Inductive definitions for discrete plane geometry. Jean Duprat* Laurent Vuillon** *Lip, ENS-Lyon **Lama, Universit de Savoie. The discrete plane like Z 2 . Each pixel is defined by its coordinates (x,y). A line is defined by an


slide-1
SLIDE 1

Inductive definitions for discrete plane geometry.

Jean Duprat* Laurent Vuillon**

*Lip, ENS-Lyon **Lama, Université de Savoie.

slide-2
SLIDE 2

The discrete plane like Z2.

 Each pixel is

defined by its coordinates (x,y).

 A line is defined by

an execution of Bresenham’s algorithm or by a Diophantin inequation

 20 ≤ 5y-3x ≤ 24

slide-3
SLIDE 3

Objectives and limitations.

 Intrinsic

constructive inductive definitions.

 Now :

 strict first quadrant

N*2.

 only positive slope

lines.

slide-4
SLIDE 4

Directing vectors.

 Inductive definition :

 u> is a DV,  if v> is a DV then

N(v>) is a DV,

 if v> is a DV then

D(v>) is a DV.

 Symmetry π :

 π(u>)= u>,  π(N(v>))=D(π(v>)),  π(D(v>))=N(π(v>)).

u> v> Nv> Dv> v>

slide-5
SLIDE 5

Vectors.

 v> is a DV and α a

strictly positive integer then α.v> is a vector.

 Over-notations :

 we identify v> and 1.v>,  we note π(α.v>) the

vector α.(π(v>)),

 we extend the

constructors N and D by :

 Nαv>=αNv>,  Dαv>=αDv>.

1v> 3v>

slide-6
SLIDE 6

Coordinates of a vector.

The coordinates of the vector v> is the couple of integers computed by :

the coordinates of u> are (1,1),

if the coordinates of v> are (x,y) then

 the coordinates of Nv> are

(x+y,y),

 the coordinates of Dv> are

(x,x+y),

 the coordinates of αv> are

(αx,αy).

(1,1) (5,3) (8,3) (5,8) (15,9)

slide-7
SLIDE 7

Points.

 There is a bijection ε

between vectors and points.

 ε : v> -> A.  U=ε(u>).

1v> A

slide-8
SLIDE 8

Transformations.

hα : A -> B.

if A = ε(β.v>) then B = ε((αβ).v>), (we note B=αA)

n : A -> B.

if A = ε(α.v>) then B = ε(α.N(v>)), (we note B=nA)

d : A -> B.

if A = ε(α.v>) then B = ε(α.D(v>)), (we note B=dA)

p : A -> B.

if A=ε(v>) then B = ε(π(v>)), (we note B=pA). A 3A nA dA pA

slide-9
SLIDE 9

Canonical notation.

For each point A, there exist a non null integer α, an integer m and two sequences of integers x0, x1, …, xm and y0, y1, …, ym which are not null when they exist except eventually x0 and ym such that :

Example :

A = dnd2n2U.

A = nx0dy0nx1dy1 KnxmdymU

U nnU ddnnU nddnnU dnddnnU

slide-10
SLIDE 10

Similarities.

 Given v> a vector,

the similarity of v> changes A into B :

 if v>=αNx0Dy0Nx1Dy

1…NxmDymu>

then B=αnx0dy0nx1dy

1…nxmdymA.

We note B = v>A.

 Example :

 A = dn2U,  v> = dndu>,  B = v>A.

U A=dnnU B=dndA

slide-11
SLIDE 11

Coordinates.

X : P -> nat

X(U)=1,

X(nA)=X(A)+X(pA),

X(dA)=X(A),

X(αA)=αX(A).

Y : P -> nat

Y(U)=1,

Y(nA)=Y(A),

Y(dA)=Y(A)+Y(pA),

Y(αA)=αY(A).

Fast computation :

X(nαA)=X(A)+αX(pA).

Y(dαA)=Y(A)+αY(pA).

Example :

X(dnd2n2U) = X(nd2n2U) = X(d2n2U) + X(n2d2U) = X(n2U) + X(nd2U) + X(dn2U) = X(nU) + X(dU) + X(d2U) + X(n2U) + X(n2U) = X(U) + X(U) + X(U) + X(dU) + X(nU) + X(dU) + X(nU) + X(dU) = 3 + X(U) + X(U) + X(U) + X(U) + X(U) + X(U) + X(U) = 10.

Y(dnd2n2U) = Y(nd2n2U) + Y(dn2d2U) = Y(d2n2U) + Y(n2d2U) + Y(d2n2U) = Y(n2U) + 2Y(d2U) + Y(d2U) + Y(n2U) + 2Y(d2U) = 2Y(U) + 5(Y(U) + 2Y(U)) = 2 + 15 = 17.

slide-12
SLIDE 12

Generators.

 We call generators

the sets of points :

 Gdd = {αU},  Ghα = {A | Y(A) = α},  Gvα = {A | X(A) = α}.

 Examples :

 Gdd,  Gh4,  Gv7.

Gdd Gh4 Gv7

slide-13
SLIDE 13

Lines.

A line L is defined by a directing vector v> and a generator G :

if G = Gdd then L = {v>A | A ∈ Gdd} noted <v>,Gdd>,

if G = Ghα then L = {v>dA | A ∈ Ghα} noted <v>,Ghα>,

if G = Gvα then L = {v>nA | A ∈ Gvα} noted <v>,Gvα>.

Example :

L = <DNu>, Gh4>. Gh4 L

slide-14
SLIDE 14

Bundle of lines.

A bundle of lines is built with lines having the same directing vector v> and consecutives generators :

{<v>,Ghα}i≤α≤j,

{<v>,Gdd}∪{<v>,Ghα} 0≤α≤j,

{<v>,Gvα} 0≤α≤j ∪{<v>,Gdd}∪ {<v>,Ghβ} 0≤β≤j,

{<v>,Gvα} 0≤α≤j ∪{<v>,Gdd},

{<v>,Gvα} i≤α≤j.

The width of a bundle is the number of generators.

Example :

{<DNu>, Ghα} 2≤α≤4. Gh4 Gh3 Gh2

slide-15
SLIDE 15

Bresenham drawing.

A bundle of directing vector v> is

connected by vertex if the width is greater or equal to max(x,y) where (x,y) are the coordinates of v>,

connected by edge if the width is greater or equal to x+y where (x,y) are the coordinates of v>.

Example :

{<DNu>,Gdd} ∪

{<DNu>, Ghα}1≤α≤4.

slide-16
SLIDE 16

Incidence check.

A point A belongs to a line L = <v>,G> if there exists a point B such

if G = Gdd then A = v>B and B = αU,

if G=Ghα then A = v>dB and Y(B) = α,

if G = Gvα then A = v>nB and X(C) = α.

Example :

A = dnd2n2U belongs to L = <DNu>,Gh4> since A = DNu>dB with B = dn2U.

Gh4 L A=dndB B=dnnU

slide-17
SLIDE 17

Incidences.

 There are a finite

number of lines passing through a point A.

 The directing vectors of

these lines are deduced by the beginning word of the canonical representation of A.

A = nx0dy0nx1dy1 KnxmdymU

 Example :

 A=dnd2n2U belongs to :

 L1=<u>, Gh7>,  L2=<Du>, Gv3>,  L3=<DNu>, Gh4>,  L4=<DNDu>, Gh1>,  L5=<DND2u>, Gv2>,  L6=<DND2Nu>, Gv1>,  L7=<DND2N2u>, Gdd>.

slide-18
SLIDE 18

Example of incidences.

Gh7 L A=dB B=nddnnU Gh4 L A=dndB B=dnnU Gh1 L A=dnddB B=nnU L A=dnB B=ddnnU Gv3 L A=dnddnB B=nU Gv2 L A=dnddnnB B=U Gv1 L A=dndB B=U Gdd

slide-19
SLIDE 19

Future work.

 How to extend such a study to the whole plane ?  How to extend the definition of lines to the negative

slope lines ? (and to null or infinite slope lines ?)

 Does it exists a better definition of generators ?  With such a representation of vectors, does it exist a

suitable algorithm to implement the addition of vectors ?