2
Clipping pentru segmente (algoritmul LiangBarsky) ****************************************************************************** 1. Sa se aplice algoritmul LiangBarsky pentru a realiza clipping in urmatoarele situatii: a. dreptunghiul de clipping este dat de x_min=1, y_min=1, x_max=4, y_max=5, iar segmentul are capetele P0(1,1) si P1(5,2); b. dreptunghiul de clipping este dat de x_min=2, y_min=0, x_max=5, y_max=4, iar segmentul are capetele P0(6,0) si P1(3,3); c. dreptunghiul de clipping este dat de x_min=0, y_min=0, x_max=3, y_max=2, iar segmentul are capetele P0(3,3) si P1(1,1); d. dreptunghiul de clipping este dat de x_min=1, y_min=1, x_max=3, y_max=5, iar segmentul are capetele P0(6,2) si P1(2,0); ****************************************************************************** Solutie: a. dx=x1x0=4, dy=y1y0=3 t_I=0, t_E=1 Clip_t( dx,x_minx0)=Clip_t( 4,0) t=0 punct de intrare ‐‐‐> t_I=0, t_E=1 Clip_t(dx,x0x_max)=Clip_t(4,3) t=3/4 punct de iesire ‐‐‐> t_I=0, t_E=3/4 Clip_t( dy,y_miny0)=Clip_t(3,2) t=2/3 punct de intrare ‐‐‐> t_I=2/3, t_E=3/4 Clip_t(dy,y0y_max)=Clip_t(3,6) t=2 punct de iesire ‐‐‐> t_I=2/3, t_E=3/4 x1=x0+t_E*dx=4 x0=x0+t_I*dx=11/3 y1=y0+t_E*dy=5/4 y0=y0+t_I*dy=1 b. dx=x1x0=9, dy=y1y0=3 t_I=0, t_E=1 Clip_t( dx,x_minx0)=Clip_t( 9,8) t=8/9 punct de iesire ‐‐‐> t_I=0, t_E=8/9 Clip_t(dx,x0x_max)=Clip_t(9,1) t=1/9 punct de intrare ‐‐‐> t_I=1/9, t_E=8/9 Clip_t( dy,y_miny0)=Clip_t(3,0) t=0 punct de intrare ‐‐‐> t_I=1/9, t_E=8/9 Clip_t(dy,y0y_max)=Clip_t(3,4) t=4/3 punct de iesire ‐‐‐> t_I=1/9, t_E=8/9 x1=x0+t_E*dx=2 x0=x0+t_I*dx=5 y1=y0+t_E*dy=8/3 y0=y0+t_I*dy=1/3 c. dx=x1x0=2, dy=y1y0=2 t_I=0, t_E=1 Clip_t( dx,x_minx0)=Clip_t( 2,3) t=3/2 punct de iesire ‐‐‐> t_I=0, t_E=1 Clip_t(dx,x0x_max)=Clip_t(2,0) t=0 punct de intrare ‐‐‐> t_I=0, t_E=1 Clip_t( dy,y_miny0)=Clip_t(2,3) t=3/2 punct de iesire ‐‐‐> t_I=0, t_E=1 Clip_t(dy,y0y_max)=Clip_t(2,1) t=1/2 punct de intrare ‐‐‐> t_I=1/2, t_E=1

8. Liang Barsky

Embed Size (px)

DESCRIPTION

Liang Barsky

Citation preview

  • Clippingpentrusegmente(algoritmulLiangBarsky)******************************************************************************

    1. SaseaplicealgoritmulLiangBarskypentruarealizaclippinginurmatoarelesituatii:a. dreptunghiuldeclippingestedatdex_min=1,y_min=1,x_max=4,y_max=5,iar

    segmentularecapeteleP0(1,1)siP1(5,2);b. dreptunghiuldeclippingestedatdex_min=2,y_min=0,x_max=5,y_max=4,iar

    segmentularecapeteleP0(6,0)siP1(3,3);c. dreptunghiuldeclippingestedatdex_min=0,y_min=0,x_max=3,y_max=2,iar

    segmentularecapeteleP0(3,3)siP1(1,1);d. dreptunghiuldeclippingestedatdex_min=1,y_min=1,x_max=3,y_max=5,iar

    segmentularecapeteleP0(6,2)siP1(2,0);******************************************************************************Solutie:a.dx=x1x0=4,dy=y1y0=3t_I=0,t_E=1Clip_t(dx,x_minx0)=Clip_t(4,0)t=0punctdeintrare>t_I=0,t_E=1Clip_t(dx,x0x_max)=Clip_t(4,3)t=3/4punctdeiesire>t_I=0,t_E=3/4Clip_t(dy,y_miny0)=Clip_t(3,2)t=2/3punctdeintrare>t_I=2/3,t_E=3/4Clip_t(dy,y0y_max)=Clip_t(3,6)t=2punctdeiesire>t_I=2/3,t_E=3/4x1=x0+t_E*dx=4 x0=x0+t_I*dx=11/3y1=y0+t_E*dy=5/4 y0=y0+t_I*dy=1 b.dx=x1x0=9,dy=y1y0=3t_I=0,t_E=1Clip_t(dx,x_minx0)=Clip_t(9,8)t=8/9punctdeiesire>t_I=0,t_E=8/9Clip_t(dx,x0x_max)=Clip_t(9,1)t=1/9punctdeintrare>t_I=1/9,t_E=8/9Clip_t(dy,y_miny0)=Clip_t(3,0)t=0punctdeintrare>t_I=1/9,t_E=8/9Clip_t(dy,y0y_max)=Clip_t(3,4)t=4/3punctdeiesire>t_I=1/9,t_E=8/9x1=x0+t_E*dx=2 x0=x0+t_I*dx=5y1=y0+t_E*dy=8/3 y0=y0+t_I*dy=1/3c.dx=x1x0=2,dy=y1y0=2t_I=0,t_E=1Clip_t(dx,x_minx0)=Clip_t(2,3)t=3/2punctdeiesire>t_I=0,t_E=1Clip_t(dx,x0x_max)=Clip_t(2,0)t=0punctdeintrare>t_I=0,t_E=1Clip_t(dy,y_miny0)=Clip_t(2,3)t=3/2punctdeiesire>t_I=0,t_E=1Clip_t(dy,y0y_max)=Clip_t(2,1)t=1/2punctdeintrare>t_I=1/2,t_E=1

  • x1=x0+t_E*dx=4 x0=x0+t_I*dx=2 y1=y0+t_E*dy=5/4 y0=y0+t_I*dy=2 d.dx=x1x0=8,dy=y1y0=2t_I=0,t_E=1Clip_t(dx,x_minx0)=Clip_t(8,7)t=7/8punctdeintrare>t_I=7/8,t_E=1Clip_t(dx,x0x_max)=Clip_t(8,9)t=9/8punctdeiesire>t_I=7/8,t_E=1Clip_t(dy,y_miny0)=Clip_t(2,1)t=1/2punctdeiesire>nusedeseneazanimic******************************************************************************

    2. SaseaplicealgoritmulLiangBarskypentruarealizaclippingpentrusegmentuldecapeteP0(6,2)siP1(0,7)dacadreptunghiuldeclippingesteobtinutdinx_min=1,y_min=1,x_max=3,y_max=3prinaplicareaurmatoarelortransformarigeometrice:scalareadeparametri2si3,rotatiadeunghi3Pi/2sitranslatiadevector(1,2).

    ******************************************************************************