inductive definitions for discrete plane geometry
play

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


  1. Inductive definitions for discrete plane geometry. Jean Duprat* Laurent Vuillon** *Lip, ENS-Lyon **Lama, Université de Savoie.

  2. The discrete plane like Z 2 .  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

  3. Objectives and limitations.  Intrinsic constructive inductive definitions.  Now :  strict first quadrant N *2 .  only positive slope lines.

  4. Directing vectors. u>  Inductive definition :  u > is a DV, v>  if v > is a DV then N(v > ) is a DV, Nv>  if v > is a DV then D(v > ) is a DV.  Symmetry π : Dv>  π (u > )= u > ,  π (N(v > ))=D( π (v > )), � v>  π (D(v > ))=N( π (v > )).

  5. Vectors.  v > is a DV and α a strictly positive integer 1v> then α .v > is a vector.  Over-notations :  we identify v > and 1.v > ,  we note π ( α .v > ) the 3v> vector α .( π (v > )),  we extend the constructors N and D by :  N α v > = α Nv > ,  D α v > = α Dv > .

  6. Coordinates of a vector. (1,1) The coordinates of the  vector v > is the couple of (5,3) integers computed by : the coordinates of u > are (8,3)  (1,1), if the coordinates of v > are  (x,y) then (5,8)  the coordinates of Nv > are (x+y,y),  the coordinates of Dv > are (x,x+y),  the coordinates of α v > are (15,9) ( α x, α y).

  7. Points.  There is a bijection ε 1v> between vectors and points.  ε : v > -> A.  U= ε (u > ). A

  8. Transformations. h α : A -> B.  if A = ε ( β . v > ) then  B = ε (( αβ ) .v > ), (we note B= α A) 3A n : A -> B.  dA if A = ε ( α .v > ) then  B = ε ( α .N(v > )), (we note B=nA) pA d : A -> B.  A nA if A = ε ( α .v > ) then  B = ε ( α .D(v > )), (we note B=dA) p : A -> B.  if A= ε (v > ) then  B = ε ( π (v > )), (we note B=pA).

  9. Canonical notation. For each point A, there exist  a non null integer α , an dnddnnU integer m and two sequences of integers x 0 , x 1 , …, x m and y 0 , y 1 , …, y m which are not null when they exist except eventually x 0 and y m such that : ddnnU nddnnU A = n x 0 d y 0 n x 1 d y 1 K n x m d y m � U Example :  U nnU A = dnd 2 n 2 U. 

  10. Similarities.  Given v > a vector, the similarity of v > B=dndA changes A into B :  if v > = α N x 0 D y 0 N x 1 D y 1 …N x m D y m u > then B= α n x 0 d y 0 n x 1 d y 1 …n x m d y m A . We note B = v > A.  Example : A=dnnU  A = dn 2 U,  v > = dndu > , U  B = v > A.

  11. Coordinates. X : P -> nat Example :   X(dnd 2 n 2 U) =  X(U)=1,  X(nd 2 n 2 U) = X(nA)=X(A)+X(pA), X(d 2 n 2 U) + X(n 2 d 2 U) =  X(n 2 U) + X(nd 2 U) + X(dn 2 U) = X(dA)=X(A),  X(nU) + X(dU) + X(d 2 U) + X(n 2 U) + X(n 2 U) X( α A)= α X(A).  = X(U) + X(U) + X(U) + X(dU) + X(nU) + Y : P -> nat  X(dU) + X(nU) + X(dU) = Y(U)=1, 3 + X(U) + X(U) + X(U) + X(U) + X(U) +  X(U) + X(U) = Y(nA)=Y(A),  10. Y(dA)=Y(A)+Y(pA), Y(dnd 2 n 2 U) =   Y( α A)= α Y(A). Y(nd 2 n 2 U) + Y(dn 2 d 2 U) =  Y(d 2 n 2 U) + Y(n 2 d 2 U) + Y(d 2 n 2 U) = Fast computation :  Y(n 2 U) + 2Y(d 2 U) + Y(d 2 U) + Y(n 2 U) + X(n α A)=X(A)+ α X(pA). 2Y(d 2 U) =  2Y(U) + 5(Y(U) + 2Y(U)) = Y(d α A)=Y(A)+ α Y(pA).  2 + 15 = 17.

  12. Generators.  We call generators the sets of points : Gv7 Gdd  Gdd = { α U},  Gh α = {A | Y(A) = α },  Gv α = {A | X(A) = α }. Gh4  Examples :  Gdd,  Gh4,  Gv7.

  13. Lines. A line L is defined by a  L 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  Gh4 L = {v > nA | A ∈ Gv α } noted <v > ,Gv α >. Example :  L = <DNu > , Gh4>. 

  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  Gh4 number of generators. Gh3 Example : Gh2  {<DNu > , Gh α } 2 ≤ α ≤ 4 . 

  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 .

  16. Incidence check. A point A belongs to a line L =  L <v > ,G> if there exists a point B such A=dndB 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 = dnd 2 n 2 U  belongs to Gh4 B=dnnU L = <DNu > ,Gh4> since A = DNu > dB with B = dn 2 U.

  17. Incidences.  There are a finite  Example : number of lines  A=dnd 2 n 2 U belongs to : passing through a point  L1=<u > , Gh7>, A.  L2=<Du > , Gv3>, A = n x 0 d y 0 n x 1 d y 1 K n x m d y m � U  L3=<DNu > , Gh4>,  The directing vectors of  L4=<DNDu > , Gh1>, these lines are  L5=<DND 2 u > , Gv2>, deduced by the  L6=<DND 2 Nu > , Gv1>, beginning word of the  L7=<DND 2 N 2 u > , Gdd>. canonical representation of A.

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

  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 ?

Recommend


More recommend