Ki thuat do hoa

download Ki thuat do hoa

of 173

Transcript of Ki thuat do hoa

  • 8/14/2019 Ki thuat do hoa

    1/173

    HC VIN CNG NGH BU CHNH VIN THNG

    K THUT HA

    (Dng cho sinh vin ho to i hc txa)

    Lu hnh ni b

    H N

    I - 2006

  • 8/14/2019 Ki thuat do hoa

    2/173

    HC VIN CNG NGH BU CHNH VIN THNG

    K THUT HA

    Bin son : THS. TRNH TH VN ANH

  • 8/14/2019 Ki thuat do hoa

    3/173

    Li ni u

    3

    LI NI U

    Hin nay ho my tnh (Computer Graphics) l mt trong nhng chng trnh thngdng nht, n gp phn quan trng lm cho giao tip gia con ngi v my tnh trnn thnthin hn. Tht vy, giao din kiu vn bn (text) c thay th hon ton bng giao din ho, cng vi cng ngha phng tin (multimedia) a ngnh Cng Ngh Thng Tin sangmt phin bn mi.

    Cun ti liu ging dy ny, ti mun mang li cho bn c cc csl thuyt v homy tnh tn gin nht nh cc thut ton vng thng, ng trn, a gic, k t..... Tipn cc k thut xn ta, cc php bin i ho trong khng gian 2D v 3D.... Chng ta ln ltlm quen vi th gii mu sc thng qua cc h mu: RGB, CMYK, HSV.... Phc tp hn na lcc php chiu, cc phng php xy dng ng cong v mt cong cho i tng.

    Ti liu gm by chng, trong chng mt gip bn c ci nhn tng quan v k thut ho t trc n gicng nh hng tng lai cho lnh vc ny. Cc chng tip theo, michng s l mt vn tn gin n phc tp. Cui mi chng u c phn bi tp chochng ta kim tra li kin thc va c c. Bi tp gm hai dng: dng tnh ton v dng lptrnh, i vi dng lp trnh bn c th vit bng C/C++ hay BC thm ch bng VB u c.Cui cng l phn ph lc gm cc hng dn chng ta lm bi tp lp trnh, ngn ng haydng y l C/C++ hay BC.

    B cc r rng, hnh nh phong ph, a dng. D cho bn cha tng bit v ho mytnh hay bn nhiu nm lm vic trong lnh vc ny, bn u c th nhn thy rng cun schny l mt b tham kho y cc thng tin hu ch v c tnh cht thc tin cao.

    Trong qu trnh bin son mc d c gng ht sc nhng vn khng trnh khi nhng saist, rt mong nhn c sng gp chn thnh t qu bn c.

    Xin chn thnh cm n.

    Tc gi

  • 8/14/2019 Ki thuat do hoa

    4/173

    Chng 1: Tng quan v k thut ha

    4

    CHNG 1: TNG QUAN V K THUT HO

    1. CC KHI NIM TNG QUAN CA K THUT HO MYTNH (COMPUTER GRAPHICS)

    1.1. L ch spht trin

    - Graphics nhng nm 1950-1960

    1959 Thit b hou tin l mn hnh xut hin ti c.

    1960 - SAGE (Semi-Automatic Ground Environment System) xut hin bt sng thao tcvi mn hnh.

    1960 William Fetter nh khoa hc ngi M, ng ang nghin cu xy dng m hnhbung li my bay cho hng Boeing ca M. ng da trn hnh nh 3 chiu ca m hnh ngiphi cng trong bung li ca my bay xy dng nn mt m hnh ti u cho bung li mybay. Phng php ny cho php cc nh thit k quan st mt cch trc quan v tr ca ngi litrong khoang. ng t tn cho phng php ny l ho my tnh (Computer Graphics) .

    Mn hnh l thit b thng dng nht trong h ho, cc thao tc ca hu ht cc mn hnhu da trn thit kng tia m cc CRT (Cathode ray tube).

    Khi gi lm ti mn hnh l rt cao, my tnh x l chm, t v khng chc chn(khng ng tin cy).

    - Graphics: 1960-1970

    1963 Ivan Sutherland (hi ngh Fall Joint Computer - ln u tin c kh nng to mi, hinth v thay i c thc hin trong thi gian thc trn mn CRT).

    H thng ny c dng thit k mch in: CRT, LightPen (bt sng), computer (chachng trnh x l thng tin). Ngi s dng c th v mch in trc tip ln mn hnh thngqua bt sng.

    - Graphics:1970-1980

    Raster Graphics ( hoim). Bt u chun ho v d nh: GKS(Graphics KernelSystem): European effort (kt qu ca chu u), Becomes ISO 2D standard.

    - Graphics: 1980-1990

    Mc ch c bit v phn cng, thit b hnh hc ho Silicon. Xut hin cc chun cngnghip: PHIGS (Programmers Hierarchical Interactive Graphics Standard) xc nh cc phng

    php chun cho cc m hnh thi gian thc v lp trnh hng i tng.

    Giao din ngi my Human-Computer Interface (HCI)

    - Computer Graphics: 1990-2000

    OpenGL API (Application Program Interface giao din chng trnh ng dng).

    Completely computer-sinh ra ngnh in nh phim truyn (Toy Story) rt thnh cng.

    Cc tim tng phn cng mi: Texture mapping (dn cc nh ca cnh tht ln b mt ca

    i tng),blending (trn mu).- Computer Graphics: 2000- nay

  • 8/14/2019 Ki thuat do hoa

    5/173

    Chng 1: Tng quan v k thut ha

    5

    nh hin thc.cc cc ho cho my tnh (Graphics cards for PCs), game boxes and gameplayers

    Cng nghip phim nh nhvo ho my tnh (Computer graphics becoming routine inmovie industry): Maya (th gii vt cht tri gic c).

    1.2. K thut ha vi tnh.

    Definition (ISO): Phng php v cng ngh chuyn i d liu t thit b ho sang mytnh.

    Computer Graphics l phng tin a nng v mnh nht ca giao tip gia con ngi vmy tnh.

    Computer Graphics (Kthut ho my tnh) l mt lnh vc ca Cng ngh thng tin m nghin cu, xy dng v tp hp cc cng c (m hnh l thuyt v phn mm) khc nhau: kin to, xy dng, lu tr, x l Cc m hnh (model) v hnh nh (image) ca i tng.

    Cc m hnh (model) v hnh nh ny c th l kt qu thu c t nhng lnh vc khc nhau cart nhiu ngnh khoa hc (vt l, ton hc, thin vn hc)

    Computer graphics x l tt c cc vn to nh nhmy tnh.

    2. CC K THUT HO

    2.1. K thut hoim (Sample based-Graphics)

    - Cc m hnh, hnh nh ca cc i tng c hin th thng qua tng pixel (tng muri rc)

    - c im: C th thay i thuc tnh

    + Xo i tng pixel ca m hnh v hnh nh cc i tng.

    + Cc m hnh hnh nh c hin th nh mt li im (grid) cc pixel ri rc,

    + Tng pixel u c v tr xc nh, c hin th vi mt gi tr ri rc (s nguyn)cc thng s hin th (mu sc hoc sng)

    + Tp hp tt c cc pixel ca grid cho chng ta m hnh, hnh nh i tng mchng ta mun hin th.

    Hnh 1.1 nh hoim

  • 8/14/2019 Ki thuat do hoa

    6/173

    Chng 1: Tng quan v k thut ha

    6

    Bitmap

    Hnh 1.2 K thut hoim

    Phng php to ra cc pixel

    - Phng php dng phn mm v trc tip tng pixel mt.

    - Da trn cc l thuyt m phng (l thuyt Fractal, v.v) xy dng nn hnh nh mphng ca s vt.

    - Phng php ri rc ho (s ho) hnh nh thc ca i tng.

    - C th sa i (image editing) hoc x l (image processing) mng cc pixel thu ctheo nhng phng php khc nhau thu c hnh nh c trng ca i tng.

    2.2. K thut ho vector

    Hnh 1.3 M hnh ho vector

    - M hnh hnh hc (geometrical model) cho m hnh hoc hnh nh ca i tng- Xc nh cc thuc tnh ca m hnh hnh hc ny,

    SRPlibrary

    Pascal Cprogram

    X WindowSystem Graphics hardware

    Image

    image formats, compression, transfer

    graphics algorithmscolourpositions

    M hnh ha

    T trt

    Thit b ra

    Cc tham st trt

  • 8/14/2019 Ki thuat do hoa

    7/173

    Chng 1: Tng quan v k thut ha

    7

    - Qu trnh t trt (rendering) hin th tng im ca m hnh, hnh nh thc ca itng

    C thnh ngha ho vector: ho vector = geometrical model + rendering

    So snh gia Raster v Vector Graphics hoim(Raster Graphics)

    - Hnh nh v m hnh ca cc vt thc biu din bi tp h p cc im ca li(grid)

    - Thay i thuc tnh ca cc pixel =>thay i tng phn v tng vng ca hnh nh.

    - Copy c cc pixel t mt hnh nhny sang hnh nh khc.

    ho vector(Vector Graphics)

    - Khng thay i thuc tnh ca tngim trc tip

    - X l vi tng thnh phn hnh hc csca n v thc hin qu trnh t trt v hinth li.

    - Quan st hnh nh v m hnh ca hnhnh v s vt nhiu gc khc nhau bng

    cch thay i im nhn v gc nhn.

    V d v hnh nh ho Vector

    Hnh 1.4 V d v ho vector

    Muscle ModelWireframe Skeletal

    Skin Hair Render and Touch

  • 8/14/2019 Ki thuat do hoa

    8/173

    Chng 1: Tng quan v k thut ha

    8

    2.3. Phn loi ca ho my tnh

    Phn loi theo cc lnh vc ca ho my tnh

    Phn loi theo h to

    - Kthut ho hai chiu: l k thut ho my tnh s dng h to hai chiu (h to phng), s dng rt nhiu trong k thut x l bn , th.

    -Kthut ho ba chiu: l k thut ho my tnh s dng h to ba chiu, i hirt nhiu tnh ton v phc tp hn nhiu so vi k thut ho hai chiu.

    Cc lnh vc ca ho my tnh:

    - K thut x l nh (Computer Imaging): sau qu trnh x l nh cho ta nh s ca itng. Trong qu trnh x l nh s dng rt nhiu cc k thut phc tp: k thut khi phc nh,k thut lm ni nh, k thut xc nh bin nh.

    - K thut nhn dng (Pattern Recognition): t nhng nh mu c sn ta phn loi theo cutrc, hoc theo cc tiu tr c xc nh t trc v bng cc thut ton chn lc c th phntch hay tng hp nh cho thnh mt tp hp cc nh gc, cc nh gc ny c lu trong mtth vin v cn c vo th vin ny ta xy dng c cc thut gii phn tch v t hp nh.

    - K thut tng hp nh (Image Synthesis): l lnh vc xy dng m hnh v hnh nh cacc vt th da trn cc i tng v mi quan h gia chng.

    - Cc h CAD/CAM (Computer Aided Design/Computer Aided Manufacture System): kthut ho tp hp cc cng c, cc k thut trgip cho thit k cc chi tit v cc h thngkhc nhau: h thng c, h thng in, h thng in t.

    - ho minh ho (Presentation Graphics): gm cc cng c gip hin th cc s liu thnghim mt cch trc quan, da trn cc mu th hoc cc thut ton c sn.

    K thut phn tch v to nh

    ho hot hnh v ngh thut

    K thut nhn dng

    X l nh

    ho minh ho

    CAD/CAM System

    K thut ho

    Kin to ho

    X l ho

    K thut ho

    K thut ho 2 chiu

    K thut ho 3 chiu

  • 8/14/2019 Ki thuat do hoa

    9/173

    Chng 1: Tng quan v k thut ha

    9

    - ho hot hnh v ngh thut: bao gm cc cng c gip cho cc ho s, cc nh thit kphim hot hnh chuyn nghip lm cc k xo hot hnh, v tranh... V d: phn mm 3D Studio,3D Animation, 3D Studio Max.

    2.4. Cc ng dng tiu biu ca k thut ha

    ho my tnh l mt trong nhng lnh vc l th nht v pht trin nhanh nht ca tinhc. Ngay t khi xut hin n c sc li cun mnh lit, cun ht rt nhiu ngi nhiu lnhvc khc nhau nh khoa hc, ngh thut, kinh doanh, qun l...Tnh hp dn ca n c thcminh ho rt trc quan thng qua cc ng dng ca n.

    -Xy dng giao din ngi dng (User Interface)

    Giao din ho thc s l cuc cch mng mang li s thun tin v thoi mi cho ngidng ng dng. Giao din WYSIWYG v WIMP ang c a s ngi dng u thch nhtnhthn thin, d s dng ca n.

    - To cc biu trong thng mi, khoa hc, kthutCc ng dng ny thng c dng tm lc cc d liu v ti chnh, thng k, kinh

    t, khoa hc, ton hc... gip cho nghin cu, qun l... mt cch c hiu qu.

    - Tng ho vn phng v chbn in t

    - Thit kvi strgip ca my tnh (CAD_CAM)

    - Lnh vc gii tr, ngh thut v m phng

    -iu khin cc qu trnh sn xut (Process Control)

    -Lnh vc bn (Cartography)

    - Gio dc v o toMt s v d ca ng dng k thut ho:

  • 8/14/2019 Ki thuat do hoa

    10/173

    Chng 1: Tng quan v k thut ha

    10

    Hnh 1.5 Cc ng dng ca k thut ho

    Hnh 1.6 Hng dng CAD - CAM

  • 8/14/2019 Ki thuat do hoa

    11/173

    Chng 1: Tng quan v k thut ha

    11

    2.5. Cc chun giao din ca h ho

    Mc tiu cn bn ca phn mm hoc chun l tnh tng thch. Khi cc cng cc thit k vi hm ho chun, phn mm c thc di chuyn mt cch d dng t h

    phn cng ny sang h phn cng khc v c dng trong nhiu ci t v ng dng khc nhau.

    GKS (Graphics Kernel System): chun xc nh cc hm ho chun, c thit k nhmt tp hp cc cng c ho hai chiu v ba chiu.

    GKS Functional Description, ANSI X3.124 - 1985.GKS - 3D Functional Description, ISO

    Doc #8805:1988.

    CGI (Computer Graphics Interface System): h chun cho cc phng php giao tip vicc thit b ngoi vi.

    CGM (Computer Graphics Metafile): xc nh cc chun cho vic lu tr v chuyn ihnh nh.

    VRML (Virtual Reality Modeling Language): ngn ng thc ti o, mt hng pht trintrong cng ngh hin thc xut bi hng Silicon Graphics, sau c chun ha nhmt chun cng nghip.

    PHIGS (Programmers Hierarchical Interactive Graphics Standard): xc nh cc phngphp chun cho cc m hnh thi gian thc v lp trnh hng i tng.

    PHIGS Functional Description, ANSI X3.144 - 1985.+ Functional Description, 1988, 1992.

    OPENGL th vin ha ca hng Silicon Graphics, c xy dng theo ng chun camt h ha nm 1993.

    DIRECTX th vin ho ca hng Microsoft, Direct X/Direct3D1997

    3. PHN CNG HO (GRAPHICS HARDWARE)

    3.1. Cc thnh phn phn cng ca h ho tng tc

    CPU:thc hin cc chng trnh ng dng.

    B x l hin th (Display Processor): thc hin cng vic hin th d liu ho.

    B nhh thng (System Memory): cha cc chng trnh v d liu ang thc hin.

    Gi phn mm ho (Graphics Package): cung cp cc hm ho cho chng trnh ngdng

    Phn mm ng dng (Application Program): phn mm hong dng.Bm ( Frame buffer): c nhim v cha cc hnh nh hin th.

    Biu khin mn hnh (Video Controller): iu khin mn hnh, chuyn d liu dng sframe buffer thnh cc im sng trn mn hnh.

  • 8/14/2019 Ki thuat do hoa

    12/173

    Chng 1: Tng quan v k thut ha

    12

    Hnh 1.7 Cc thnh phn cng ca h ho tng tc

    3.2. My in

    Dot size: ng knh ca mt im in b nht m my in c th in c

    Addressability: kh nng a ch ho cc im in c th c trn mt n v di (dot perinch)

    S lng mu c th v trn mt im:

    Dot size Point per inch

    8 - 20/ 100inch 200, 600

    5/1000inch 1500

    My v 6,15/1000 inch 1000, 2000

    3.3. Mn hnh CRT

    Mt chm cc tia in t (tia m cc) pht ra t mt sng in t, vt qua cun li tia dnn v tr xc nh trn mn hnh c ph mt lp phosphor. Ti mi v tr tng tc vi tia int ht phosphor s pht ln mt chm sng nh. Nhng chm sng s mdn rt nhanh nn cnc cch no n duy tr nh trn mn hnh. Mt trong cc cch l: lp i lp li nhiu ln vic v linh tht nhanh bng cch hng cc tia in t trli v tr c. Gi l lm ti (refresh CRT).

    S lng ti a cc im c th hin th trn mt CRT c gi l phn gii

    (Resolution). Hay phn gii l s lng cc im trn mt cm m c thc v theo chiungang v chiu dc (c xem nh tng sim theo mi hng).

  • 8/14/2019 Ki thuat do hoa

    13/173

    Chng 1: Tng quan v k thut ha

    13

    Hnh 1.8 Cng ngh mn hnh CRT

    Kch thc vt l ca mn hnh hoc tnh t di ca ng cho mn hnh.Thng dao ng t 12-27 inch, hoc ln hn.

    Thuc tnh khc ca mn hnh l t s phng (aspect ratio). N l t l ca cc im dcv cc im ngang cn pht sinh cc on thng c di n v theo c hai hng trn mnhnh. Mn hnh c t s phng khc mt, th hnh vung hin th trn thnh hnh ch nht cnhnh trn thnh hnh ellipse.

    Mn hnh dng im (Raster Display): thng gp nht trong s cc dng mn hnh s dngCRT trn cng ngh truyn hnh. Mi im trn mn hnh c gi l pixel. Cc thng tin v nhhin th trn mn hnh c lu tr trong mt vng b nhgi l vng m lm ti (Refresh

    buffer) hay l vng m khung (Frame Buffer). Vng lu tr tp cc gi tr cng sng caton b cc im trn mn hnh v lun tn ti mt cch song nh gia mi im trn mn hnh v

    mi phn t trong vng ny.

    SONY Trinitron NEC Hybrid Hitachi EDP Standard Dot-trio

  • 8/14/2019 Ki thuat do hoa

    14/173

    Chng 1: Tng quan v k thut ha

    14

    to ra hnh nh en trng, n gin ch cn lu thng tin ca mi Pixel l mt bt (0,1)(xem hnh 1.9). Trong trng hp nh nhiu mu th cn nhiu bt hn, nu thng tin mi pixelc lu bng b bt th ta c th c 2b gi tr mu phn bit cho pixel .

    Trong cc mn hnh mu, ngi ta nh ngha tp cc mu lm vic trong mt bng tra (LookUpTable - LUT). Mi phn t ca LUT c nh ngha mt b ba gi tr (RGB) m t mt mu no. Khi cn s dng mt mu, ta ch cn chnh s th t (index) tng ng ca mu trongLUT, s phn t trong bng LUT chnh l s mu c thc hin th cng mt lc trn mnhnh.

    V d m hnh hoim ngi nh v ngi sao.

    Hnh 1.9 Song nh gia vng m khung v mn hnh

    X: 0 Xmax2 mu/ 1 bit

    Y: 0 Ymax16 mu/ 4 bit ;256 mu/ 8bit

    216

    mu/ 16 bit ; 224

    mu/ 24 bit

    640 x 480 x 16 Video RAM = 2MB

    1024 x 1024 x 24 Video RAM = 24MB

    Vic lm ti trn mn hnh dng ny c thc hin tc 60 - 80 frame/giy. i khitc lm ti cn c biu din bng n v Hertz (Hz - s chu k trn/giy), trong mt chuk tng ng vi mt frame. Vy tc lm ti 60 frame/giy n gin l 60 Hz. Khi t ncui mi dng qut, tia in t quay trli bn tri ca mn hnh bt u dng qut k tip.Vic quay tr v bn tri mn hnh sau khi lm ti mi dng qut c gi l tia hi ngang(Horizontal retrace). V ti cui mi frame, tia in t (tia hi dc - Vertical retrace) quay trligc bn tri ca mn hnh chun b bt u frame k tip.

    Displayprocesso

    Interface to hostcomputer

    (Displaycommands)

    (interaction data)

    Keyboard

    Data input

    00000000000000000000000001000000000000000000000

    Bitmap refresh buffer(the 1s are accentuatedfor contrast)

    CRT

  • 8/14/2019 Ki thuat do hoa

    15/173

    Chng 1: Tng quan v k thut ha

    15

    Hnh 1.10 Qut mnh v qut dng ca mn hnh CRT

    V d v vic tia qut trn mn hnh CRT:

    MOVE 10,15

    LINE 400,300

    LINE 600,800

    Refesh Buffer

    DrawLine(A, B):

    Turn beam off,

    move to A.

    Turn beam on,

    move to B.

    3.4. Mn hnh tinh th lng (Liquid Crystal Display LCD)

    Da vo cng ngh truyn nh sng qua in cc m t gia l cun dy xon. Khi chac t trng (cha c dng in) cun dy th nh sng truyn thng, khi c t trng th nhsng truyn i chiu.

    Hnh 1.11 Cng ngh truyn nh sng trong mn hnh tinh th lng

  • 8/14/2019 Ki thuat do hoa

    16/173

    Chng 1: Tng quan v k thut ha

    16

    CRT Displays (mn hnh CRT)

    Advantages (u im)

    p ng nhanh (c phn gii cao)

    Mu sc a dng (C su v rng)Mu sc bo ho v t nhin

    Cng ngh khng qu t v hon thin

    Gc nhn rng, tng phn v sng cao

    Disadvantages (nhc im)

    Ln v nng (typ. 70x70 cm, 15 kg)

    Tiu tn ngun in cao (typ. 140W)C hi cho sc kho v trng in t v t tnh

    Mn hnh nhp nhy (at 50-80 Hz)

    Hnh hay b mo ti 4 gc

    LCD Displays (mn hnh tinh th lng)

    Advantages (u im)

    Hnh dng nh, trng lng nh (approx 1/6 ofCRT, typ. 1/5 of CRT)

    Tiu tn ngun thp (typ. 1/4 of CRT)

    Mn hnh phng tuyt i nn khng mo ticc gc

    Mu sc u, nh sinh ng

    Khng b hiu ng in t trng

    C th mn hnh va ln va rng (>20 inch)

    Disadvantages (nhc im)

    Gi thnh cao (presently 3x CRT)

    Gc nhn hp hn (typ. +/- 50 degrees)

    tng phn thp (typ. 1:100)

    chi ( ngi) thp hn (typ. 200 cd/m2)

    Tm tt chng:

    S ra i ca ho my tnh thc s l cuc cch mng trong giao tip gia ngi dngv my tnh. Vi lng thng tin trc quan, a dng v phong ph c truyn ti qua hnh nh.Cc ng dng ho my tnh li cun nhiu ngi nh tnh thn thin, d dng, kch thchkh nng sng to v tng ng k hiu sut lm vic.

    ho my tnh ngy nay c c ng dng rt rng ri trong nhiu lnh vc khao hc,k thut, ngh thut, kinh doanh, qun lCc ng dng ho rt a dng, phong ph v phttrin lin tc khng ngng. Ngy nay, hu nh khng c chng trnh ng dng no m khng s

    dng k thut ho lm tng tnh hp dn cho mnh.

    Mt h thng ho bao gicng gm hai phn chnh l phn cng v phn mm. Phncng bao gm cc thit b hin th (thit b xut) v cc thit b nhp. Tiu biu nht l mn hnh,c hai loi thng dng l CRT v LCD.

    Bi tp:

    1. Cu to v nguyn l hot ng ca mn hnh dng im. Nu cc khi nim vng mkhung, phn gii, t s phng.... ca mn hnh loi ny?

    2. ngha v hot ng ca bng tra LUT?

  • 8/14/2019 Ki thuat do hoa

    17/173

    Chng 1: Tng quan v k thut ha

    17

    3. Tnh Video Ram ca cc mn hnh ln lt c phn gii l 640x480, 1024x768,1280x1024 m c mi pixel c m t l 8bt, 12 bit, 24 bit.

    4. Nu chng ta dng cc gi tr 12bit cho mi pixel trong mt bng tham chiu lookuptable, c bao nhiu hng mc m lookup table c c?

    5. Ti sao phi chun ho cc phn mm? Lit k v tm hiu cc chun h phn mm ho.

    Bi tp trc nghim:

    1. T s phng (aspect ratio) ca mn hnh l 1,4 vy mt hnh trn khi hin th trn mnhnh s cho:

    a. Hnh trn

    b. Hnh ellipse nm ngang (bn knh theo trc x di hn bn knh theo trc y)

    c. Hnh ellipse ng (bn knh theo trc x ngn hn bn knh theo trc y)d. Hnh thoi

    2. Cho mn c phn gii 1024x1024 v mi pixel c m t 24bt vy video RAM camn hnh l:

    a. 1048576 bt

    b. 2MB

    c. 3MB

    d. 4MB

    3. Nu ta dng cc gi tr 24 bit cho mi pixel trong mt bng LUT. Th bng LUT c smu l:

    a. 24 mu

    b. 1024 mu

    c. 16777216 mu

    d. 16000000 mu

  • 8/14/2019 Ki thuat do hoa

    18/173

    Chng 2: Cc gii thut sinh thc th cs

    18

    CHNG 2: CC GII THUT SINH THC TH C S

    1. CC I TNG HO CS

    1.1. H to th gii thc v h to thit b

    a. Hto thgii thc (WCS: World Coordinate System)

    WCS hay h to thc l h toc dng m t cc i tng trong th gii thc.Mt trong h to thc c dng nhiu nht l h to Descartes. Bt k im no trong mt

    phng c m t bng cp to (x,y) trong x,y R. Gc to l im O c to (0,0),Ox,Oy ln lt l trc honh v trc tung v x,y l honh v tung .

    Cc to th gii thc cho php ngi s dng bt k mt th nguyn (dimension) quic: foot, cm, nm, km, inch....tu .

    b. Hto thit b(DCS: Device Coordinate System)

    H to thit b l h toc dng bi mt thit b xut c th no nh my in,mn hnh...

    Cc im c biu din bi cp to (x,y), nhng x,y N. im trong to thc cnh ngha lin tc, cn trong to thit b th ri rc do tnh cht ca tp cc s t nhin.

    Cc to (x,y) c gii hn trong mt khong no .

    1.2. im v on thng

    a.im

    Trong h to hai chiu (x,y), ngoi ra n cn c tnh cht mu sc.

    b.on thng

    + Biu din tng minh: y = f(x)

    Mt on thng c xc nh nu bit 2 im thuc n. Phng trnh on thng i qua 2im P (x1,y1) v Q(x2,y2) nh sau:

    (y-y1)/( x-x1) = ( y2-y1)/( x2-x1)

    (y-y1)(x2-x1)=(x-x1)(y2-y1)

    (x2-x1)y=(y2-y1)x + y1(x2-x1) - x1(y2-y1)

    y = ((y2-y1)/(x2-x1))x + y1 - ((y2-y1)/(x2-x1))x1

    y = kx + m

    k = (y2-y1)/(x2-x1) dc hay h s gc ca ng

    m = y1- kx1on chn trn trc y

    y = kx (tc l khi x thay i th y thay i theo)

    Hnh 2.1 Von thng PQ+ Biu din khng tng minh: ax+by+c=0

    m

    P(x1,y1)

    Q(x2 , y2)

  • 8/14/2019 Ki thuat do hoa

    19/173

    Chng 2: Cc gii thut sinh thc th cs

    19

    Ta c

    (y2-y1)x - (x2-x1)y + (x2-x1)y1 - (y2-y1)x1 = 0

    (y2-y1)x - (x2-x1)y + x2y1 - x1y2 = 0

    hay rx + sy + t = 0s = -(x2-x1 )

    r = (y2-y1) v t = x2y1 - x1y2

    + Biu din thng qua tham s:

    P(u) = P1 + u(P2 - P1)u [0,1]

    x(u) = x1 + u( x2 - x1 )

    y (u)= y1 + u( y2 - y1 )

    2. CC GII THUT XY DNG THC TH CS

    2.1. Gii thut von thng thng thng

    Nguyn l chung: cho mt thnh phn to x hay y bin i theo tng n v v tnh nguyn cn li sao cho gn vi to thc nht.

    Ta c ( ) 1112

    12 yxxxx

    yyy

    =

    Cho x thay i tm y, trong bi ny cho x1 thay i tin ti x2 ta chn n v nh nht ca

    mn hnh x=1.

    Gii thut thng thng:

    void dline(int x1,int y1, int x2,int y2, int color)

    {

    float y;

    int x;

    for (x=x1; x

  • 8/14/2019 Ki thuat do hoa

    20/173

    Chng 2: Cc gii thut sinh thc th cs

    20

    - Khi k>1 bt u y=y1 (y1

  • 8/14/2019 Ki thuat do hoa

    21/173

    Chng 2: Cc gii thut sinh thc th cs

    21

    Gi (xi+1,y) l im thuc on thng, ta c y=k(xi+1)+b

    d1 = y - yi = k(xi +1) + b - yi

    d2 = yi+1 - y = yi + 1 - k(xi + 1) - b

    - Nu d1 yi+1 = yi- Ngc li d1 > d2 => yi+1 = yi +1

    t D = d1 - d2= 2k(xi + 1) - 2yi + 2b - 1

    C k=y/x

    t Pi = xD = x (d1 - d2)

    Pi = x(2y/x(xi +1)- 2yi +2b-1)

    = 2yxi +2y -2xyi + 2bx -xTa tnh bc tip:

    Pi+1 = 2yxi+1 +2y -2xyi+1 + 2bx -x

    Pi+1 - Pi = -2x(yi+1 -yi) + 2y(xi+1 -xi)C xi+1 =xi+1 nn:

    Pi+1 - Pi = - 2x(yi+1 -yi) + 2y = 2y - 2x(yi+1 -yi)Nu Pi 0 th yi+1 = yi +1

    Pi+1 = Pi + 2y - 2xTnh gi tru: P1?

    P1 = x(d1 - d2)

    = x(2y/x(x1 +1)- 2y1 +2b-1)

    = 2yx1 +2y -2xy1 + 2bx -x

    C y1=kx1 + b = y/x x1 +b

    P1 = 2yx1 +2y -2x((y/x)x1 +b) + 2bx -x

    = 2yx1 +2y -2yx1 - 2bx + 2bx -x

    P1 = 2y - x

  • 8/14/2019 Ki thuat do hoa

    22/173

    Chng 2: Cc gii thut sinh thc th cs

    22

    Hnh 2.4 S khi thut ton Bresemham chong thng

    /*Thuat toan Bresenham ve dthang (0

  • 8/14/2019 Ki thuat do hoa

    23/173

    Chng 2: Cc gii thut sinh thc th cs

    23

    - nu d < 0 im A c chn khi yi+1 = yi+ 1

    Trng hp d = 0 chng ta c th chn im bt k hoc A, hoc B.

    S dng phng php biu din khng tng minh

    f(x,y)= ax +by +c =0 (1)dx =x2-x1 dy =y2-y1Biu din tng minh:

    y= (dy/dx)x +B hay

    f(x,y)=0= xdy - ydx +Bdx (2)

    So snh (1) v (2)

    a=dyb=-dx c= Bdx

    C f(x,y)=0 vi mi (x,y) thuc ng thng

    t di=f(xi+1,yi+1/2) = a(xi+1) +b(yi +1/2) +c

    + Nu chn A (d0) th M s tng theo x

    di+1=f(xi+2,yi+1/2) = a(xi+2) +b(yi +1/2) +c

    di+1 - di = a

    Hay di+1 = di + dy

    Tnh d1 ?d1 = f(x1+1,y1+1/2) = a(x1+1) +b(y1 +1/2) +c

    = ax1 +by1 +c +a +1/2 b = f(x1,y1) +a +b/2

    C (x1,y1) l im bt u, nm trn on thng nn f(x1,y1) = 0

    Vy d1 = a+ b/2 = dy - dx/2

  • 8/14/2019 Ki thuat do hoa

    24/173

    Chng 2: Cc gii thut sinh thc th cs

    24

    Hnh 2.6 S khi gii thut Midpiont choon thng

    /* Thuat toan Midpoint de ve doan thang(0

  • 8/14/2019 Ki thuat do hoa

    25/173

    Chng 2: Cc gii thut sinh thc th cs

    25

    d2 = y2 - (yi - 1)2 = r2 - (xi +1)2 - (yi - 1)2

    pi = d1 - d2 = 2(xi +1 )2 + yi

    2 + (yi - 1)2 -2r2

    Xt: pi =d2) chn im nm trong ng trn yi+1 = yi +1pi = 2(xi +1 )

    2 + 2yi2 - 2yi 1 - 2r

    2

    pi+1 = 2(xi +2 )2 + 2yi+1

    2 - 2yi+1 + 1 - 2r2

    pi+1 = pi + 4xi +6 + 2yi+12 - 2yi

    2- 2yi+1 + 2yi

    pi+1 = pi + 4xi +6 + 2(yi+12 - yi

    2 )- 2(yi+1 - yi )

    + Nu pi =0 hay yi+1 = yi -1

    pi+1 = pi + 4xi +6 - 4yi + 2 + 2pi+1 = pi + 4(xi - yi ) + 10

    + Tnh P1 ? khi ng vi x1=0 v y1 =r

    p1 = 2(x1 +1)2 + y1

    2 + (y1 - 1)2 -2r2

    = 2 + r2 + (r-1)2 - 2r2= 3 - 2r

    Gii thut l:

    Hnh 2.9 S khi gii thut Bresemham chong trn

    void Bre_circle(int xc, int yc, int Radius, int

    color)

    {int x, y, p;

    x = 0;

    y = Radius;

    p = 3 - 2 * Radius;

    while (x

  • 8/14/2019 Ki thuat do hoa

    26/173

    Chng 2: Cc gii thut sinh thc th cs

    26

    Cu hi: lc s dng tnh i xng cho tm cch v mt ng trn y t cc topixel c to ng vi gc phn t th hai. Mt vi Pixel c v hai ln, hin tng ny gi lOverstrike. Hy chnh xem ni no xy ra hin tng ?

    Tr li: Ti (r,0) hoc (0,r) v v tr ng cho: (r, r) trong = 1/2 0.7071

    /* Thuat toan Bresenham de ve duong tron */

    #include

    #include

    #define pc(xc,yc,x,y) {

    putpixel(xc + x, yc + y, color);

    putpixel(xc - x, yc - y, color);

    putpixel(xc -y, yc +x, color);

    putpixel(xc +y, yc -x, color);

    }

    void Bresenham_Circle(int xc, int yc, int Radius, int color){

    int x, y, p;

    x = 0;

    y = Radius;

    p = 3 - 2 * Radius;

    pc(xc,yc, Radius,0); //ve 4 diem dac biet

    while (x < y){

    if (d < 0)

    p += 4 * x + 6;

    else{

    p += 4 * (x-y) + 10;

    y--;

    }

    x++;pc(xc,yc, x,y);

    pc(xc,yc, y,x);

    }

    pc(xc,yc, y,y); // ve 4 diem phan giac x=y

    }

    void main(){

    int gr_drive = DETECT, gr_mode;

    initgraph(&gr_drive, &gr_mode, "");

    Bresenham_Circle(getmaxx() / 2, getmaxy() / 2, 150, 4);

    getch();

    closegraph();}

    2.7. Gii thut sinh ng trn Midpoint

    Phng trnh ng trn khng tng minh:

    f(x,y) = x2+y2-R2 =0

    Nu f(x,y) = 0 th nm trn ng trn

    f(x,y) > 0 th nm bn ngoi ng trn

    f(x,y) < 0th nm bn trong ng trn

    Thc hin gii thut trn 1/8 ng trn v ly i xng cho cc gc cn li.

    Vi M l im gia ca AB

    Vi di l gi tr ca ng trn ti mt im bt k

  • 8/14/2019 Ki thuat do hoa

    27/173

    Chng 2: Cc gii thut sinh thc th cs

    27

    Ta c: di = f(xi+1,yi - 1/2) = (xi +1 )2 + (yi - 1/2)

    2 - r2

    + di < 0 chn A th im k cn s dch chuyn theo x mt n v

    di+1 = f(xi +2, yi -1/2)

    = (xi +2)2

    + (yi - 1/2)2

    - r2

    di+1 - di = (xi +2)

    2 - (xi +1 )2 = 2xi +3

    di+1 = di + 2xi+3

    + di >= 0 chn B th im k cn s dch chuyn theo x 1 n v, theo y -1 n v

    di+1 = f(xi +2, yi -3/2)

    = (xi +2)2 + (yi - 3/2)

    2 - r2

    di+1 - di = 2xi - 2yi +5

    di+1 = di + 2xi - 2yi +5

    Tnh d1? ti im (0, r)d1 =f(1,r-1/2)= 1

    2 + (r-1/2)2 - r2

    d1 = 5/4 -r

    Thut ton nh sau:

    Hnh 2.10 S khi gii thut Midpoint vng trn

    void Mid_circle(int xc, int yc, int Radius, int

    color)

    {

    int x, y, d;

    x = 0;

    y = Radius;

    d = 1- Radius;

    while (x

  • 8/14/2019 Ki thuat do hoa

    28/173

    Chng 2: Cc gii thut sinh thc th cs

    28

    Hnh 2.11 M t gii thut sinh ng ellipse

    Vector vi tip tuyn gradient =1

    Ta c tip tuyn vi cung trn ( dc) = -1= dy/dx = - fx/fy

    Trong fx=2b2x o hm ring phn ca f(x,y) vi x

    V fy=2a2y o hm ring phn ca f(x,y) vi yGi s ta ch xt trn gc phn t th nht: gi s ta chia cung t (0,b) n (a,0) ti Q, c

    dc -1

    Trn phn 1: x thay i th y thay i theo

    Trn phn 2: y thay i th x thay i theo

    + Xt trn phn 1:

    Bt u t (0,b), bc th i (xi,yi) chn tip

    A(xi+1, yi)

    B(xi+1,yi-1)Tham s quyt nh:

    Pi = f(xi+1,yi-1/2) = b2(xi+1)

    2 + a2(yi-1/2)2 -a2b2

    Pi+1 = f(xi+1+1,yi+1-1/2) = b2(xi+1+1)

    2 + a2(yi+1-1/2)2 -a2b2

    Pi+1 - Pi = b2((xi+1+1)

    2 - (xi+1)2 )+ a2((yi+1-1/2)

    2 - (yi-1/2)2 )

    Pi+1 = Pi + 2b2xi+1+ b

    2 + a2((yi+1-1/2)2 - (yi-1/2)

    2 )

    - Nu Pi =0 chn B

    xi+1=xi+1

    yi+1=yi -1

    Pi+1 = Pi + 2b2xi(xi+1) +b

    2 + a2((yi-1 -1/2)2 - (yi-1/2)

    2 )

    = Pi + 2b2xi +3b

    2 +a2(-3yi +9/4 +yi -1/4)

    = Pi + 2b2xi +3b2 +a2(-2yi +2)

    Hay Pi+1 = Pi + b2(2xi +3) + a

    2(-2yi +2)

    AM tiep tuyen = -1B gradient

    B CM

    i

  • 8/14/2019 Ki thuat do hoa

    29/173

    Chng 2: Cc gii thut sinh thc th cs

    29

    - Tnh P1? ti (0,b)

    P1 = f(x1+1,y1-1/2) = b2 + a2(b-1/2)2 -a2b2

    P1 = b2 - a2b +a2/4

    + Xt trn phn 2:Ta ly to d ca Pixel sau cng trong phn 1 ca ng cong tnh gi tr ban u cho

    phn 2.

    Gi s pixel (xk,yk) va chuyn qut cui cng ca phn 1 nh p vo bc j cho phn 2(xj,yj).

    Pixel k tip c th l:

    C(xj,yj-1)

    D(xj+1, yj-1)

    Tham s quyt nh:qj = f(xj+1/2,yj-1) = b

    2(xj+1/2)2 + a2(yj-1)

    2 -a2b2

    qj+1 = f(xj+1+1/2,yj+1-1) = b2(xj+1+1/2)

    2 + a2(yj+1-1)2 -a2b2

    qj+1 - qj = b2((xj+1+1/2)

    2 - (xj+1/2)2 )+ a2((yj+1-1)

    2 - (yj-1)2 )

    qj+1 = qj + b2((xj+1+1/2)

    2 - (xj+1/2)2 )+ a2- 2a2yj+1

    - Nu qj =0 chn C

    yj+1=yj -1

    xj+1= xj

    qj+1 = qj + a2- 2a2(yj-1)

    Hay qj+1 = qj + a2(3 - 2yj )

    - Tnh q1?q1 = f(xk+1/2,yk-1) = b

    2(xk+1/2)2 + a2(yk-1)

    2 -a2b2

    Cu hi: lc ly i xng 4 cch tm 1 Ellipse hon chnh t cc to pixel c to ravi cung phn t th 1. C hin tng overstrike xy ra hay khng?

    Tr li: hin tng overstrike xy ra ti:

    (0,b); (0,-b); (a,0); (-a,0)

    Thut ton

    #include

    #include

    #define ROUND(a) ((long)(a+0.5))

    void plot(int xc, int yc, int x, int y, int color){

    putpixel(xc+x, yc+y, color);

  • 8/14/2019 Ki thuat do hoa

    30/173

    Chng 2: Cc gii thut sinh thc th cs

    30

    putpixel(xc-x, yc+y, color);

    putpixel(xc+x, yc-y, color);

    putpixel(xc-x, yc-y, color);

    }

    void Mid_ellipse(int xc, int yc, int a, int b, int color){

    long x, y, fx, fy, a2, b2, p;

    x = 0;

    y = b;

    a2 = a * a; //a2

    b2 = b * b; // b2

    fx = 0;

    fy = 2 * a2 * y; // 2a2y

    plot(xc, yc, x,y, color);

    p = ROUND(b2-(a2*b)+(0.25*a)); // p=b2 - a2b + a2/4

    while (fx < fy){

    x++;

    fx += 2*b2; //2b2if (p0){y--;

    fy -= 2*a2; // 2a2

    if (p>=0)

    p+=a2*(3 - 2*y); p =p + a2(3-2y)

    else{

    x++;

    fx += 2*b2; // 2b2

    p += b2*(2*x+2) + a2*(-2*y +3); //p=p + b2(2x +2) +a2(-2y +3)

    }

    plot(xc, yc, x, y, color);

    }

    }

    void main(){

    int gr_drive = DETECT, gr_mode;

    initgraph(&gr_drive, &gr_mode, "");

    Mid_Ellipse(getmaxx() / 2, getmaxy() / 2, 150, 80, 4);

    getch();

    closegraph();

    }

    2.9. Gii thut sinh k t

    Trong mn hnh text, truy xut cc k t trn mn hnh c h trbi phn cng. Cc k

    tc lu tr trong b nhROM, di dng bitmap hay cc ma trn nh. Phn cng sa kt ln mn hnh ti v tr xc nh, tnh ton cun trang v xung dng.

  • 8/14/2019 Ki thuat do hoa

    31/173

    Chng 2: Cc gii thut sinh thc th cs

    31

    Trong ho:

    + Vector: nh ngha cc k t theo nhng ng cong mm bao ngoi ca chng, tn kmv mt tnh ton.

    Hnh 2.12 K tvector

    - phc tp (tnh ton phng trnh)- lu tr gn nh

    - cc php bin i da vo cng thc bin i

    - Kch thc ph thuc vo mi trng (khng c kch thccnh)

    + Bitmap: nh ngha mi k t vi 1 font ch cho trc l 1 nh bitmap hnh ch nht nh.

    Hnh 2.13 K tbitmap

    - n gin trong vic sinh k t(copypixel)

    - Lu tr ln- Cc php bin i(I,B,U, scale) i hilu tr thm

    - Kch thc khng i

    + bitmap: s dng hm copypixel (copy im nh) c lu tr trong b nh cnh -Fontcache, a vo b nhm hin th. Mi 1 k t nh 1 ma trn 2 chiu ca cc im nh -mt n.

    Hm_sinh_ki_tu (mask)

    {xmax, ymax, xmin, ymin //cc gii hn ca mt nxo, yo//im gc trn bm hin th

    for (i=ymin;i< ymax ;i++)

    for (j=xmin; j< xmax ; j++)

    if (mask(i,j) 0)

    copypixel ((mask(i,j), pixel(xo+j, yo+i));

    }

    K t fontcache bitmap n gin ca SRGP lu tr cc k t theo chui lin tip nhautrong b nh. Nhng rng cc k t khc nhau, truy nhp cc fontcache thng qua bn ghi vcu trc cho tng k t.

    Cu trc font chtypedef struct {

    int leftx;

    int width;

    } Charlocation; //V tr ca text

    struct {

    int CacheId;

    int Height; // rng ch

    int CharSpace; // Khong cch gia cc k t

    Charlocation Table [128]; //bng ch ci

    } fontcache;

    + K t vector

  • 8/14/2019 Ki thuat do hoa

    32/173

    Chng 2: Cc gii thut sinh thc th cs

    32

    Xy dng theo phng php nh ngha cc k t bi ng cong mm bao ngoi cachng d dng thay i kch thc ca k t cng nh ni suy ra cc dng ca k t. Hon tonc lp vi thit b.

    + Ti u nht: lu tr font di dng ng bao. Khi cc chng trnh ng dng s dng lbitmap tng ng vi chng.

    2.10. Gii thut sinh a gic (Polygon)

    a. Thut gii vng bao a gic

    Vic biu din a gic thng qua:

    - Tp cc on thng

    - Tp cc im thuc a gic

    Cc loi a gic:

    Hnh 2.14 Cc loi a gic

    a gic li: l a gic c ng thng ni bt k 2 im bn trong no ca a gic u nmtrn trong a gic. a gic khng li l a gic lm.

    Cc ng thng bao a gic - cnh ca a gic. Cc im giao ca cnh - nh ca a gic.Thng tin cn thit xc nh a gic:

    - S cnh

    - To cc nh ca a gic

    Gii thut:

    Polygon (arrayx, arrayy,n)

    { if (n

  • 8/14/2019 Ki thuat do hoa

    33/173

    Chng 2: Cc gii thut sinh thc th cs

    33

    - Bc tip: kim tra thuc tnh mu cc im ln cn

    + im ln cn t mu (exit)

    + trng vi mu ng bin(exit)

    + Nu khng th t muCc phng php xc nh im ln cn

    Hnh 2.15 Phng php tnh tin gii thut

    Gii thut t mu ng bin:#include

    #include

    void FloodFill (int x, int y, int in_color, int new_color){

    if (getpixel(x, y) == in_color){

    putpixel(x, y, new_color);

    FloodFill(x-1, y, in_color, new_color);

    FloodFill(x+1, y, in_color, new_color);

    FloodFill(x, y-1, in_color, new_color);

    FloodFill(x, y+1, in_color, new_color);

    }

    }void main(){

    int gr_drive = DETECT, gr_mode;

    initgraph(&gr_drive, &gr_mode, "");

    circle(getmaxx() / 2, getmaxy() / 2, 15);

    FloodFill(getmaxx() / 2, getmaxy() / 2, 0, 4);

    getch();

    closegraph();

    }

    +Gii thut dng qut (scanline) cho vic t mu vng

    Gii thut da trn tng s dng mt ng qut trn trc y ca mn hnh i t ymaxnymin ca vng cn c t mu.

    Vi mi gi tr y = ying thng qut ct cc ng bin ca vng cn t to ra on

    thng y = yi vi x [xmin, xmax]. Trn on thng chng ta t mu cc im tng ng i t xmin

    n xmax c cc im t (xi, yi) y = yi.

    - n gin nht v d t mu hnh ch nht:

    void scanline_rectg(x1,y1,x2,y2,c){ int i,j;

    for(i=y1; i>=y2; i--)

    for(j=x1; j

  • 8/14/2019 Ki thuat do hoa

    34/173

    Chng 2: Cc gii thut sinh thc th cs

    34

    Gi s vng t c cho bi 1 a gic n nh: pi (xi,yi), i=0,1,....,n-1. a gic ny c th la gic li, a gic lm hay a gic t ct....

    Cc bc tm tt chnh ca thut ton:

    - Tm ytop, ybottom ln lt l gi tr ln nht, nh nht ca tp cc tung ca cc nh caa gic cho.

    ytop = max{yi,(xi,yi) P},

    ybottom = min{yi,(xi,yi) P}.

    - ng vi mi dng qut y=k, vi k thay i t ybottomn ytop lp:

    + Tm tt c cc honh giao im ca dng qut y=k vi cc cnh ca a gic

    + Sp xp cc honh giao im theo th t tng dn: xo,x1,....

    + T mu cc on thng trn ng thng y=k ln lt c gii hn bi cc cp(x

    o,x

    1), (x

    2,x

    3), ......, (x

    2k,x

    2k+1).

    Chng ta s gp 1 s vn sau:

    - ng vi mi dng qut khng phi lc no tt c cc cnh ca a gic cng tham gia ctdng qut. Do ci thin tc cn phi c mt cch no hn chc s cnh cntm giao im ng vi mi dng qut.

    - Nu s giao im tm c gia cc cnh a gic v dng qut l l (iu ny ch xy rakhi dng qut si qua cc nh ca a gic) khi ta s tnh sim l 2 th c th t khngchnh xc. Ngoi ra, vic tm giao im ca dng qut vi cc cnh nm ngang l trng hp t

    bit...

    Hnh 2.16 Gii thut scanline cho mt a gic bt k

    gii quyt cc vn trn ta c cc phng php sau:

    + Danh sch cc cnh kch hot (AET - Active Edge Table)

    Mi cnh ca a gic c xy dng t 2 nh k nhau Pi(xi,yi) v Pi+1(xi+1,yi+1) gm cc

    thng tin sau:ymin: gi tr nh nht trong 2 nh ca cnh

    x

    yyqmax

    yq

    yqmin

    yq

  • 8/14/2019 Ki thuat do hoa

    35/173

    Chng 2: Cc gii thut sinh thc th cs

    35

    xIntersect: honh giao im ca cnh vi dng qut hin ang xt

    DxPerScan: gi tr 1/m (m l h s gc ca cnh)

    DeltaY: khong cch t dng qut hin hnh ti nh ymax

    Danh sch cc cnh kch hot AET: danh sch ny dng lu cc tp cnh ca a gic cth ct ng vi dng qut hin hnh v tp cc im giao tng ng. N c mt sc im:

    Cc cnh trong danh sch c sp xp theo th t tng dn ca cc honh giao im c th t mu cc on giao mt cch d dng.

    Thay i ng vi mi dng qut ang xt, do danh sch ny sc cp nht lin tctrong qu trnh thc hin thut ton. u tin ta c danh dch cha ton b cc cnh ca a gicgi l ET (Edge Table) c sp xp theo th t tng dn ca ymin, ri sau mi ln dng qut thayi s di chuyn cc cnh trong ET thoiu kin sang AET.

    Mt dng qut y=k ch ct 1 cnh ca a gic khi v ch khi k>=ymin v y>0. Chnh v vy

    m vi cc t chc ca ET (sp theo th t tng dn ca ymin) iu kin chuyn cc cnh t ETsang AET s l k>=ymin; v iu kin loi mt cnh ra khi AET l y

  • 8/14/2019 Ki thuat do hoa

    36/173

    Chng 2: Cc gii thut sinh thc th cs

    36

    Nhc im: khng c im nh v tr phn bit mt cch r rng cho mu t trong mt agic bt k.

    Phng php 2: s dng cho SRGP

    Ly im neo gc to, gi s ta coi c mn hnh c lt bi mu t cc thc th l ccng bin cho cc vng t, vy nu ngoi cc thc th cc mu t khng c php th hin.

    Hnh 2.18 Phng php ly im neo

    Tm tt chng:

    Cc i tng ho cscung cp cc cng c cbn nht cho vic xy dng cc nh ho ca cc i tng phc tp. Cc on thng, ng cong, vng t, k t....l cc i tng ho csc hu ht tt c cc cng c lp trnh ho h tr.

    c th hin th cc i tng ho trn thit b hin th dng im m in hnh l mn

    hnh, cn phi c mt qu trnh chuyn cc m t hnh hc ca cc i tng ny trong h toth gii thc v dy cc pixel tng ng gn vi chng nht trn to thit b. Qu trnh ny cnc gi l qu trnh chuyn i bng dng qut. Yu cu quan trng nht i vi qu trnh nyngoi vic phi cho kt qu xp x tt nht cn phi cho tc ti u.

    Ba cch tip cn von thng gm thut ton DDA, thut ton Bresenham, thut tonMidpiont u tp trung vo vic a ra cch chn mt trong hai im nguyn k tip khi bitim nguyn bc trc. Thut ton DDA n gin ch dng thao tc lm trn nn phi dngcc php ton trn s thc, trong khi thut ton Bresenham v Midpiont a ra cch chn phctp hn nhng cho kt qu tt hn. Tng t dng hai gii thut Bresenham v Midpiont v

    ng trn v ellpise v mt sng cong khc.Cc thut ton t mu vng gm thut ton loang ( qui) hay thut ton dng qut. C th

    t cng mt mu hay t theo mu.

    Bi tp:

    1. Chnh cc v tr mnh no sc chn bi thut ton Bresenham lc chuyn qut mtng thng t to pixel (1,1) sang to pixel (8,5).

    2. Dng gii thut Bresenham vit hm sinh on thng (xt tt c cc trng hp ca h sgc).

    3. Dng gii thut Midpiont vit hm sinh on thng (xt tt c cc trng hp ca h sgc).

    x

    y

    neo

    neo

    x

    y

  • 8/14/2019 Ki thuat do hoa

    37/173

    Chng 2: Cc gii thut sinh thc th cs

    37

    4. Dng gii thut Midpiont vit hm sinh ng trn (to tm (xc,yc) v bn knh r).

    5. Dng gii thut Midpiont vit hm sinh ng ellipse (to tm (xc,yc) v bn knh rxv ry ).

    6. T hm vng thng thit k v ci t hm v cc hnh sau: hnh ch nht, a gic,ngi nh....

    7. Vit gii thut tm giao im hai on thng.

    8. Vit chng trnh t mu Floodfill (s dng qui vi 4-connected).

    9. a ra lu thut ton t mu theo dng qut.

    10.Vit thut ton t mu scan-line.

    Bi tp trc nghim:

    1. Xy dng gii thut tng qut vng thng ta c xt h s k (h s gc ca ng)

    s c tt c cc trng hp ca k:a. 4

    b. 3

    c. 2

    d. 1

    2. biu din on thng thng qua phng trnh tham s nh sau:

    a. y=f(x) hay y=kx+b

    b. f(x,y)=0 hay ax + by +c =0

    c. x(v)=x1 +v(x2-x1) v y(v) = y1 +v(y2-y1) c v [0,1]

    d. P(u) = P1 + u(P2-P1) c u [0,1]

    3. Khi xy dng gii thut vng trn y ta ch cn vit phng trnh cho 1/8 ngtrn, ri gi i xng 8 cch. Khi xy ra hin tng overstrike. Vy im xy ra hintng l: (r l bn knh ca ng trn)

    a. (0,r) v

    rr

    2

    1,

    2

    1

    b. (r,0) hoc (0,r) v

    rr 2

    1

    ,2

    1

    c. (0,r) v (-r,0)

    d. (r,0) v (0,r)

    4. Gii thut sau l gii thut g? V dng bao nhiu im ln cn?

    void Function (int x, int y, int c1, int c2){

    if (getpixel(x, y) == c1){

    putpixel(x, y, c2);

    Function (x-1, y, c1, c2);

    Function (x+1, y, c1, c2);

    Function (x+1, y+1, c1, c2);Function (x-1, y-1, c1, c2);

    Function (x, y-1, c1, c2);

  • 8/14/2019 Ki thuat do hoa

    38/173

    Chng 2: Cc gii thut sinh thc th cs

    38

    Function (x, y+1, c1, c2);

    }

    }

    Gii thut scanline, sim ln cn l: Gii thut t mung bin, s imln cn l:

    Gii thut t muloang, s im lncn l:

    Gii thut t mutheo mu, s mu lncn l:

    A B c d

    5. Gii thut vng thng sau v cho trng hp k l:

    void Midline(int x1,int y1,int x2,int y2,int c){

    int x=x1,y=y1,dx=x2-x1,dy=y2-y1,p=2*dx-dy;

    while(y

  • 8/14/2019 Ki thuat do hoa

    39/173

    Chng 2: Cc gii thut sinh thc th cs

    39

    7. Gii thut sau l gii thut no?

    void Function(int xt, int yt, int r, int c){

    int x, y, d;

    x = 0;

    y = r;d = 3 - 2 * r;

    while (x

  • 8/14/2019 Ki thuat do hoa

    40/173

    Chng 2: Cc gii thut sinh thc th cs

    40

    getch();closegraph();

    }

    A B c d

  • 8/14/2019 Ki thuat do hoa

    41/173

    Chng 3: Cc php bin i ha

    41

    CHNG 3: CC PHP BIN I HO

    1. CC PHP BIN I HNH HC HAI CHIU

    1.1. Php bin i Affine (Affine Transformations)

    Php bin i Affine l php bin i tuyn tnh ta im c trng ca i tng thnhtp tng ng cc im mi to ra cc hiu ng cho ton i tng.

    V d: php bin i ta vi ch 2 im u cui ca on thng to thnh 2 im mim khi ni chng vi nhau to thnh on thng mi. Cc im nm trn on thng s c kt qul im nm trn on thng mi vi cng php bin i thng qua php ni suy.

    1.2. Cc php bin i i tng

    Cc i tng phng trong ho 2 chiu m t tp cc im phng. im trong ho 2chiu biu din thng qua to, vit di dng ma trn gi l vectv tr.

    C 2 dng biu din:

    Mt hng v 2 ct: [ ]yx

    Hai hng v 1 ct:

    y

    x

    Trong ti liu ny chng ta chn biu din im l ma trn hng (mt hng v 2 ct).

    Tp cc im c lu tr trong my tnh sc vit di dng ma trn v tr ca chng.Chng c th l ng thng, ng cong, nh....tht d dng kim sot cc i tng thng quacc php bin i chng, thc cht cc php bin i ho ny c m t di dng cc matrn.

    1.2.1. Php bin i vtr

    Gi s ta c im P = [ x y ] trong mt phng vi [x y] l vectv tr ca P, k hiu l [X].

    Gi ma trn T l ma trn bin i s c dng:

    Hnh 3.1 Php bin i v tr

    Ta c im P sau php bin i thnh P c gi tr [x y].Thc thi php bin i ng trn 1 im nh sng vi ton bi tng.

    =

    dc

    baT

    y

    x

    P P

  • 8/14/2019 Ki thuat do hoa

    42/173

    Chng 3: Cc php bin i ha

    42

    Hay ta c: x = ax + cy

    y = bx + dyXt ma trn bin i T:

    Php bt bin:

    Khi : a = d =1 v b = c = 0 v ma trn cho php bt bin l:

    [ ] [ ] [ ] [ ] [ ]''10

    01** yxyxyxTX ==

    =

    Vy x=x v y = y hay l P = P chng t bt bin qua php bin i. Php bin i t l (scaling):

    - Nu d=1 v b = c = 0 th ma trn bin i l:

    =

    10

    0aT

    x = ax

    y = y

    P dch chuyn theo trc x vi t l a xc nh.

    - Nu b = c =0 th ma trn bin i l:

    =

    d

    aT

    0

    0

    [ ] [ ] [ ] [ ] [ ]''0

    0** yxdyax

    d

    ayxTX ==

    =

    Hay tng qut hn gi Sx, Sy ln lt l t l theo trc x v trc y, th ma trn t l s l:

    =

    Sy

    SxT

    0

    0

    Khi Sx , Sy >1 gi l php phng to

    Khi Sx, Sy

  • 8/14/2019 Ki thuat do hoa

    43/173

    Chng 3: Cc php bin i ha

    43

    i xng qua y i xng qua x i xng qua gc to

    Hnh 3.2 Cc php i xng trn 2D

    Php bin dng

    Khi a = d = 1 th to ca P ph thuc vo thay i ca b v c

    - Xt c = 0

    Hnh 3.3 Php bin dng theo trc oy

    C P khng thay i gi tr to x, cn y thay i ph thuc vo c b v x

    - Xt b = 0

    [ ] [ ] [ ] [ ] [ ]''1

    01**X yxycyx

    cyxT =+=

    =

    Hnh 3.4 Php bin dng theo trc ox

    Ch : im gc to P[0 0] bt bin vi mi php bin i

    [ ] [ ] [ ] [ ] [ ]''10

    1** yxybxx

    byxTX =+=

    =

    P P

    Sx=-1P

    P

    Sy=-1

    P

    P

    Sx=Sy=-1

    P

    P

    y=bx+y

    bx

    P P

    cy x=x+cy

  • 8/14/2019 Ki thuat do hoa

    44/173

    Chng 3: Cc php bin i ha

    44

    Php quay

    C >0 ngc chiu kim ng h

    Hnh 3.5 Php quay trn 2D

    Ta c:

    P[x y]= [rcos rsin]

    P[x y] = [rcos(+) rsin(+)]

    P[x y] = [r(coscos - sinsin)r(cossin + sincos)]

    = [(xcos - ysin)(xsin + ycos)]

    Vy: x = xcos - ysin

    y = xsin + ycosTa c:

    [X]= [X]* [T] = [(xcos - ysin) (xsin + ycos)]

    Vy T tng qut khi quay i tng quanh gc to 1 gc bt k l:

    [ ]

    =

    cossin

    sincosT

    1.2.2. Php bin i tng hp

    Phng php bin i s dng php nhn ma trn vi toim thng qua cc vectv trtht s hiu qu v em li cng c mnh v ho cho ngi s dng. Nhng thc t cc thaotc thng cn khng ch mt m nhiu php bin i khc nhau. Ta c php hon v khi nhn matrn l khng thc hin nhng kh nng t hp cc php nhn li cho php to ra mt ma trn bini duy nht. Lm gim bt ng k khi lng tnh ton trong qu trnh bin i, lm tng tccc chng trnh ng dng v to iu kin cho vic qun l cc bin i trong ng dng.

    Gi s ta c P vi [X] = [x y], c hai php bin i [T1] quay quanh gc to 900:

    =

    01

    101T

    V [T2] ly i xng P qua gc to:

  • 8/14/2019 Ki thuat do hoa

    45/173

    Chng 3: Cc php bin i ha

    45

    =

    10

    012T

    Ta c:

    [ ] [ ] [ ] [ ] [ ]xyyxTXX =

    ==0110*1*'

    [ ] [ ] [ ] [ ] [ ]xyxyTXX =

    ==

    10

    01*2*'"

    Gi s [T3] l ma trn tng hp [T1] v [T2]

    [ ] [ ] [ ] [ ] [ ]xyyxTXX =

    ==

    01

    10*3**

    Kt lun: bin i qua nhiu ma trn thnh phn s tng ng vi php bin i qua matrn tng hp t cc php bin i .

    2. TA NG NHT V CC PHP BIN I

    2.1. Tong nht

    Ta xt php tnh tin:

    x= x + dx

    y = y + dy

    Vy P = P + [T]

    [ ]

    =

    dy

    dxT

    Vy php bin i tng hp:

    P=P*[T] + [T] = (P + [T]) [T] + [T]

    R rng khng th biu din thng qua ma trn tng hp 2 chiu 2x2 c. Php tnh tina ra ma trn bin i tng hp l khng th.

    Th no l phng php biu din tong nht ? l phng php biu din m rngthng qua tong nht ca cc vectv tr khng ng nht [x y] l ng dng ca php bin

    i hnh hc m toim c m t di ma trn [x* y* h] vi x=x*/h, y=y*/h c h lmt s thc tu . Vy mt vectv tr [xy] bt k trn mt phng xoy bng tp v s cc imng nht [hx hyh]. V d: [2 5] s biu din bng [4102], [6153]..... n gin nht l [251].

    Vy tong nht ca vectv tr [X]= [ x y 1]. Khi ma trn bin i s l 3x3:

    [ ]

    =

    1

    0

    0

    dydx

    dc

    ba

    T

    [ ] [ ]

    ==

    1

    0

    0

    *1.'

    dydx

    dc

    ba

    yxTPP

  • 8/14/2019 Ki thuat do hoa

    46/173

    Chng 3: Cc php bin i ha

    46

    x=ax + cy +dx

    y=bx + dy + dy

    [X]= [x y1]

    Trong dx, dy l khong tnh tin theo trc x v y.2.2. Php bin i vi tong nht

    Ma trn bin i ng nht

    Php tnh tin

    C a=d=1 v b=c=0

    [ ]

    =

    1

    010001

    nm

    T

    Ch : trong mt phng to, mi im k c gc tou c th bin i.

    Php bin i tng hp ca hai php tnh tin theo khong [m1 n1] v [m2n2] bng phpbin i duy nht mt khong c gi tr bng tng ca hai php bin i [m1+m2n1+n2].

    Tht vy:

    [ ] [ ]

    ++

    =

    =

    12121

    010

    001

    122

    010

    001

    *

    111

    010

    001

    2*1

    nnmmnmnm

    TT

    Php t l

    Tng t ma trn t l:

    [ ]

    =

    100

    00

    00

    Sy

    Sx

    Ts

    Ch : Php bin i tng hp ca hai php t l Sx1, Sx2 v Sy1,Sy2 bng php bin iduy nht c t l l tch hai php bin i trn Sx1*Sx2, Sy1*Sy2.

    Php quay

    =

    1

    0

    0

    ][

    nm

    dc

    ba

    T

    ]1[

    1

    010

    001

    ]1[]1''[ nymx

    nm

    yxyx ++=

    =

    ]1..[

    100

    00

    00

    ]1[]1''[ SyySxxSy

    Sx

    yxyx =

    =

  • 8/14/2019 Ki thuat do hoa

    47/173

    Chng 3: Cc php bin i ha

    47

    Hnh 3.6 Php quay

    3. CC PHP BIN I HNH HC BA CHIUCc php bin i chuyn v - translation, t l-scaling v quay-rotation s dng trong

    khng gian 2D u c th mrng trong khng gian 3D.

    3.1.Biu din im trong khng gian 3 chiu

    [x* y* z* h] hay[x*/h y*/hz*/h 1]

    Vit gn hn:[xy z1]

    Ma trn bin i tng qut trong khng gian 3D vi ta ng nht (4x4)

    Hay

    =

    1

    0

    00

    dzdydx

    hig

    fedcba

    T

    3.2. Php tnh tin

    y l php bin i n gin nht, mrng t php bin i trong khng gian 2D ta c:

    [X'] = [ X ] . [ T(dx,dy,dz) ]

    [ x' y' z' 1 ] = [ x y z 1 ].[ T(dx,dy,dz)]

    = [ x+dx y+dy z+dz 1 ] Hnh 3.7 Php tnh tin trn 3D

    [ ]1)cossin()sincos(

    1000cossin

    0sincos

    ]1[]1''[

    yxyx

    yxyx

    +=

    =

    ( x, y )

    (x, y)

    =

    snml

    rjig

    qfed

    pcba

    ][T

    =

    1

    0100

    0010

    0001

    )],,([

    dzdydx

    dzdydxT

  • 8/14/2019 Ki thuat do hoa

    48/173

    Chng 3: Cc php bin i ha

    48

    3.3.Php t lTng t trong 2D ta c php t l trong 3D l:

    =

    1000

    0Sz00000

    000

    Sy

    Sx

    Ts

    Ta c Sx,Sy v Sz l cc h s t l trn cc trcto

    [X] = [X] . [T(Sx,Sy,Sz) ]

    = [x.Sxy.Sy z.Sz 1]

    Hnh 3.8 Php t l trn 3D

    3.4. Php bin dng

    - Ta c tt c cc phn t nm trn ng cho chnh bng 1

    - Cc phn t chiu v tnh tin bng 0

    [X] = [X] . [Tsh]

    Hnh 3.9 Cc php bin dng trn 3D

    3.5. Php ly i xng

    =

    1000

    000

    000

    000

    ]1[]1'''[Sz

    Sy

    Sx

    zyxzyx

    =

    1000

    01

    0101

    ]1[]1'''[ig

    fd

    cb

    zyxzyx

    ]1[ zfycxizybxgzydx ++++++=

  • 8/14/2019 Ki thuat do hoa

    49/173

    Chng 3: Cc php bin i ha

    49

    i xng qua trc ox i xng qua mt xoy i xng qua gc O

    =10000100

    0010

    0001

    Mox

    =10000100

    0010

    0001

    Mxoy

    =10000100

    0010

    0001

    Mo

    3.6.Php quay 3 chiu2.6.1.Quay quanh cc trc to

    n gin nht l php quay quanh cc trc to ox,oy v oz vi gc dng:

    Hnh 3.10 Xc nh gc quay dng trn 3 trc to

    Khi ny php quay li a v php quay khng gian 2D quanh gc to

    - Quay quanh trc oz:

    Hnh 3.11 Quay quanh trc oz

    =

    +=

    =

    zz

    yxy

    yxx

    '

    '

    '

    cossin

    sincos

    - Quay quanh trc ox:

    =

    1000

    0100

    00cossin

    00sincos

    ][

    Tz

  • 8/14/2019 Ki thuat do hoa

    50/173

    Chng 3: Cc php bin i ha

    50

    Hnh 3.12 quay quanh trc ox

    +=

    =

    =

    cossin

    sincos'

    '

    '

    zyz

    zyy

    xx

    - Quay quanh trc oy:

    Hnh 3.13 quay quanh trc oy

    +=

    =+=

    cossin

    sincos

    '

    '

    '

    zxz

    yy

    zxx

    Ghi ch: php quay trong khng gian 3D s dng phng php nhn ma trn bin ikhng c kh nng hon v cc ma trn.

    3.6.2. Quay quanh mt trc bt k song song vi cc trc ta

    - u tin chuyn dch i tng cho n khi toa phng ca i tng trng vitrc to m trc a phng song song.

    - Quay i tng xung quanh trc ca n (chnh l trc to)

    - a i tng v to trc khi dch chuyn ta c ma trn tng hp l:

    [T//] = [Ttt-].[T].[Ttt+]

    V d: quay i tng xung quanh mt trc // vi trc z vi khong dch chuyn l x,y v

    gc quay l .

    Gii:

    =

    1000

    0cossin0

    0sincos0

    0001

    ][

    Tx

    =

    1000

    0cos0sin

    00100sin0cos

    ][

    Ty

  • 8/14/2019 Ki thuat do hoa

    51/173

    Chng 3: Cc php bin i ha

    51

    [ ] [ ][ ][ ]

    +

    =

    +

    =

    =

    = +

    10)sin)cos1(sin)cos1(0100

    00cossin

    00sincos

    10

    0100

    0010

    0001

    .

    10)cossin()sincos(

    0000

    00cossin

    00sincos

    100100

    0010

    0001

    .

    10000100

    00cossin

    00sincos

    .

    100100

    0010

    0001

    ..//

    xyyx

    yxyxyx

    yxyx

    TTTT ttttz

    3.6.3. Quay i tng quanh mt trc bt k

    Xt bi ton sau, hy tm ma trn bin i a mt trc bt k c hng: V=ax + by +cz v trng vi trc oz theo chiu dng.

    Hnh 3.14 Quay i tng quanh mt trcbt ki qua tm

    Ta thc hin cc bc nh sau:

    Quay V quanh trc y mt gc (-) sao chonm trn mt phng (y, z) c V1

    Quay V1 quanh trc x mt gc sao chotrng vi trc z c V2

    Bc 1:

  • 8/14/2019 Ki thuat do hoa

    52/173

    Chng 3: Cc php bin i ha

    52

    Hnh 3.15 Quay V=ax+by+cz quanh trc oy

    Ta tnh ?

    Chiu V trn mt phng (x,z) c V. Ta c:

    22sin

    ca

    a

    +=

    22cos

    ca

    c

    +=

    [ ]

    ++

    ++

    =

    =

    1000

    00

    0010

    00

    1000

    0cos0)sin(

    0010

    0)sin(0cos

    2222

    2222

    ca

    c

    ca

    a

    ca

    a

    ca

    c

    T y

    Vect: 221 ,,0( cabV +

    Bc 2:

    Hnh 3.16 Quay vector V1 quanh trc ox

    222sin

    cba

    b

    ++=

    222

    22

    coscba

    ca

    ++

    +=

    y

    V

    V

    a

    a

    b

    cx

    z

    y

    VV1

    a

    a

    b

    cx

    z

    V2

  • 8/14/2019 Ki thuat do hoa

    53/173

    Chng 3: Cc php bin i ha

    53

    [ ]

    ++ +++

    ++++

    +

    =

    =

    1000

    00

    00

    0001

    1000 0cossin0

    0sincos0

    0001

    222

    22

    222

    222222

    22

    cbaca

    cbab

    cba

    b

    cba

    ca

    Tx

    Vy [Tv] = [T-y]. [Tx]

    Nu a ngc li ta c:

    [ ] [ ][ ]( ) [ ][ ]yxxyv TTTTT ..11

    ==

    Cho trc quay L (vectV = ax + by + cz) v mt im P nm trn trc L. Hy tm ma

    trn bin i quay i tng xung quanh trc L mt gc .

    Gii:Ta thc hin nh sau:

    1. Tnh tin P v gc ta .2. Chuyn trc L v trng vi trc OZ

    3. Quay i tng xung quanh trc OZ mt gc .4. Thc hin ngc li 2,1

    Vy:

    [ ] [ ][ ][ ] [ ]+= ttvZvttL TTTTTT .... 1,,

    Tm tt:

    Cc php bin i hnh hc cho php d dng thao tc trn cc i tng c to ra.Chng lm thay i m t v to ca cc i tng, t i tng sc thay i vhng, kch thc v hnh dng. Cc php bin i hnh hc c sbao gm tnh tin, quay v

    bin i t l. Ngoi ra mt s php bin i khc cng thng c p dng l php i xngv bin dng.

    Cc php bin i hnh hc 2D u c biu din di dng ma trn ng nht 3x3 tin

    cho vic thc hin cc thao tc kt hp gia chng. Trong h tong nht, to ca mtim c m t bi mt vector dng bao gm ba gi tr, hai gi tru tng ng vi toDescartes ca im , v gi tr th ba l 1. Vi cch biu din ny, ma trn ca php bin i cc t s kt hp ca cc php bin i css bng tch ca cc ma trn ca cc php bin ithnh phn.

    Php bin i hnh hc 3D l s mrng ca php bin i 2D. Tng t n cng c ccphp: tnh tin, t l, bin dng v quay. Phc tp nht l php quay, nn chng ta kho st lnlt tn gin n phc tp: quay i tng quanh cc trc to, quanh 1 trc song song vitrc to, quanh 1 trc bt k....Do kho st cc php bin i affine vi biu din dng ma trn

    ng nht (4x4 vi 3D) nn cng vic kh n gin v nht qun.

  • 8/14/2019 Ki thuat do hoa

    54/173

    Chng 3: Cc php bin i ha

    54

    Lu php tnh tin v quay c chung thuc tnh l: sau khi bin i hnh dng v kchthc ca i tng khng thay i m chng ch b thay i v tr v nh hng trong khnggian.

    Bi tp:1.

    a. Hy tm ma trn biu th php quay mt i tng mt gc 600 quanh gc to.b. Tm to mi ca P(-3,3) sau khi thc hin php quay trn?

    2.a. Hy vit dng tng qut ca ma trn iu chnh t l tng ng vi mt im c

    nh Q(a,b)?b. Phng ln t gic c cc nh A(0,0), B(1,3), C(4,2) v D(3,1) ln hai ln kch

    thc ban u ca n trong khi vn giim D(3,1)?

    3.a. M t php bin i nhm quay 1 i tng mt gc xung quanh mt tm c

    nh Q(a,b)?b. Thc hin php quay tam gic ABC c A(0,0), B(1,1) v C(4,2) mt gc 450 xung

    quanh im (-1, -1)?

    4. Cho ABC c cc tonh l A(2,2), B(3,1) v C(4,3). Xc nh ma trn bin iaffine bin i tam gic ny thnh ABC bit nh A(4,3), B(4,5) v C(7,3).

    5.a. hy tm mt ma trn dnh cho php phn chiu i xng gng xung quanh mt

    ng thng G vi dc m v tung gc (0,g)?

    b. To phn xi xng gng a gic m nh ca n: A(-1,0), B(0,-2), C(1,0) vD(0,2) xung quanh ng G trong cc trng hp sau:

    i. x=2ii. y=3

    iii. y=2x+36. Cho hnh chp ABCD c cc to A(0,0,0), B(1,0,0), C(0,1,0) v D(0,0,1). Quanh hnh

    chp quanh ng L (v=x+y+z) i qua im C mt gc 450. Tm to hnh chp mi.7.

    a. Hy tm php bin i dnh cho php i xng gng tng ng vi mt mtphng cho (c vector php tuyn M, trn c mt im P).

    x

    y P

    P

    G

    0

    g

  • 8/14/2019 Ki thuat do hoa

    55/173

    Chng 3: Cc php bin i ha

    55

    b. p dng tm ma trn cho php i xng gng vi mt phng i qua gc tov vector php tuyn c hng M=x+y+z.

    8. Vit chng trnh vi i tng (ng thng, tam gic, t gic...) trong mt phng 2Da. Dch chuyn (dng cc phm dch chuyn)

    b. Phng ln, thu nh (dng phm dch chuyn hay g vo t bn phm)c. Quay vi gc quay c g vo t bn phm (gc g vo c tnh bng )

    9. Vit chng trnh vi i tng (hnh kim cng, hnh lp phng ...) trong 3Da. Dch chuyn

    b. Phng ln, thu nhc. Quay mt gc

    Bi tp trc nghim:

    1. Cho ABC c cc to A(1,1), B(1,2) v C(3,4) thu nh tam gic ch cn m vn gicnh im A. To mi ca tam gic l:

    a. A(1,1), B(1/4, 1/2) v C(3/4,1)b. A(1,1), B(0.5, 1) v C(1.25,1.5)c. A(0.25,0.25), B(1, 1.5) v C(0.75,2)d. A(1,1), B(1, 1.25) v C(0.5,1.75)

    2. Cho on thng AB c to A(2,3) v B(6,1) quay AB mt gc 600 vn gi cnh B.To mi ca AB l:

    a. ) ))23,31' +A v B(6,1)b.

    ) ))232,34' +A v B(6,1)

    c. ( )

    +

    13,324

    1'A v B(1,6)

    d. ) ))134,31' ++A v B(6,1)3. Cho hnh ch nht ABCD c cc to l A(-1,-1), chiu rng HCN l 4 v chiu di l 3.

    Ngi ta phng ln HCN n cao ln gp 2 ln v rng gp 1.5 ln m vn gi cnhA. To mi ca HCN :

    a. A(-1,-1), B(5,-1), C(5,-7) v D(-1,-7)b. A(-1,-1), B(-1,5), C(5,-1) v D(-7,-1)

    c. A(2,2), B(3,4), C(5,-7) v D(-7,5)d. A(-1,-1), B(0,-1), C(-1,-7) v D(-1,5)

    x

    z

    y Q

    Q

  • 8/14/2019 Ki thuat do hoa

    56/173

    Chng 3: Cc php bin i ha

    56

    4. Cho ng trn c tm ti (1,4), mt im trn ng trn A(1,0). Quay ng trn mtgc 900 quanh im A, tm mi ca ng trn l:

    a. (0.5, 2)b. (-3,1)

    c. (2,5)d. (-2,3)

    5. Cho on thng AB trong khng gian c to A(2,1,1) v B(1,3,4), quay on thngquanh trc oz mt gc 300 vn cnh A. To mi ca AB l:

    a. A(2,1,1), ) ) )3,23,31' +B

    b. ( )

    + 4,2

    13,32'A , B(1,3,4)

    c. A(1,3,5), ) ) )3,23,31' +B

    d. A(2,1,1),

    4,3,

    2

    312'B

    6. Cho ABC trong khng gian c to A(1,1,1), B(4,6,0) v C(2,-1,3) ko dn cho tam

    gic rng ra (theo hng trc ox) ln 2 ln vn gi cnh B. To mi ca ABC l:a. A(2,1,1), B(4,6,0) v C(2,-1,3)

    b. A(-2,1,1), B(4,6,0) v C(0,-1,3)c. A(2,1,1), B(2,3,1) v C(2,-1,1)d. A(2,2,2), B(4,6,0) v C(1,-0.5,1.5)

    7. Cho hnh kim cng ABCD c cc to l A(4,6,1), B(1,2,3), C(2,2,5) v D(7,2,4). ixng gng hnh kim cng qua trc ox, to mi ca hnh kim cng l:a. A(4,6,-1), B(1,2,-3), C(2,2,-5) v D(7,2,-4)

    b. A(-4,6,-1), B(-1,2,-3), C(-2,2,-5) v D(-7,2,-4)c. A(4,-6,-1), B(1,-2,-3), C(2,-2,-5) v D(7,-2,-4)d. A(-4,-6,-1), B(-1,-2,-3), C(-2,-2,-5) v D(-7,-2,-4)

    8. Cho hnh kim cng ABCD c cc to l A(5,6,1), B(0,0,0), C(3,2,5) v D(8,2,4). Quayhnh kim cng quanh trc oy v vn gi cnh B. To mi ca hnh kim cng l:

    a. A(-1,5,-1), B(0,0,0), C(2,3,-3) v D(2,4,8)b. A(1,6,-5), B(1,2,2), C(5,2,-3) v D(2,-4,8)

    c. A(-1,5,-1), B(0,0,0), C(2,3,5) v D(2,4,8)d. A(1,6,-5), B(0,0,0), C(2,5,-3) v D(2,4,-8)

    9. Trong on m sau cc s t,,, ln lt l cc phm mi tn dch chuyn:

    c = getch();

    switch (c)

    {

    case 75: x -= 10; //

    break;

    case 77: x += 10;//

    break;

    case 72: y -= 10; //

  • 8/14/2019 Ki thuat do hoa

    57/173

    Chng 3: Cc php bin i ha

    57

    break;

    case 80: y += 10;//

    break;

    }

    a. Tri, phi, trn v dib. Tri, phi, di v trnc. Trn, di, tri v phid. Trn, di, phi v tri

    10.Chng trnh sau a ra ci g?

    #include

    #include

    #include

    #include

    #define RADS 0.017453293

    void Function1() {

    line (10,getmaxy()/2,getmaxx()-10,getmaxy()/2);

    line (getmaxx()/2,10,getmaxx()/2,getmaxy()-10);

    }

    void Function2(int x1,int y1,int x2,int y2,int x3,int y3){

    line (getmaxx()/2+x1,getmaxy()/2-y1,getmaxx()/2+x2,getmaxy()/2-y2);

    line (getmaxx()/2+x2,getmaxy()/2-y2,getmaxx()/2+x3,getmaxy()/2-y3);

    line (getmaxx()/2+x3,getmaxy()/2-y3,getmaxx()/2+x1,getmaxy()/2-y1);

    }void Function3(int x1,int y1, int x2, int y2, int x3, int y3,int xq, int yq,float goc ){

    float x11,y11,x22,y22,x33,y33;

    float anpha = RADS *goc;

    x11 = int(x1*cos(anpha) - y1*sin(anpha) + (1 - cos(anpha))*xq + sin(anpha)*yq);

    y11 = int(x1*sin(anpha) + y1*cos(anpha) - sin(anpha)*xq + (1 - cos(anpha))*yq);

    x22 = int( x2*cos(anpha) - y2*sin(anpha) + (1 - cos(anpha))*xq + sin(anpha)*yq);

    y22 =int( x2*sin(anpha) + y2*cos(anpha) - sin(anpha)*xq + (1 - cos(anpha))*yq);

    x33 =int( x3*cos(anpha) - y3*sin(anpha) + (1 - cos(anpha))*xq + sin(anpha)*yq);

    y33 =int( x3*sin(anpha) + y3*cos(anpha) - sin(anpha)*xq + (1 - cos(anpha))*yq);

    Function2(x11,y11,x22,y22,x33,y33);

    }

    void main() {

    clrscr();

    int driver = DETECT, mode;

    initgraph(&driver,&mode,"c:\\tc\\bgi");

    int x1 =50,y1 = 20,x2 = 50,y2 = 100,x3 = 200,y3 = 20;

    int xq=100,yq=100;

    float goc=30 ;

    Function1();

    Function2(x1,y1,x2,y2,x3,y3);

  • 8/14/2019 Ki thuat do hoa

    58/173

    Chng 3: Cc php bin i ha

    58

    Function3(x1,y1,x2,y2,x3,y3,xq,yq,goc);

    getch();

    closegraph();

    }

    A b c D

  • 8/14/2019 Ki thuat do hoa

    59/173

    Chng 4: Cc gii thut ha cs

    59

    CHNG 4: CC GII THUT HO C S

    1. H TA V M HNH CHUYN I

    1.1. Cc h thng to trong ho

    Mt hnh nh c to ra bng my tnh thng trnh by mt khung xem (viewing) tngphn ca quang cnh ln. Ging ht nh ta nhn cnh vt qua ca s hay mt knh ngm camera. to ra hnh nh i tng trn cc thit b hin th bt buc ngi s dng phi c bc bini trung gian.

    1.1.1. Hto thc (WCS World Coordinate System)

    H to ca i tng c cc chng trnh ng dng s dng m t to cc itng trong th gii thc.

    n v trong h thng to ph thuc vo khng gian v kch thc ca i tng cm t: A0, nm, mm, m, km

    Hnh 4.1 H to thc

    1.1.2. Hto thit b(DCS Device Coordinate System)

    L h thng to ca thit b ni hin th hnh nh v khng gian ca i tng m ngdng m t. Khng gian ca h thng ca to ny chnh l kch thc ca thit b hin thcs dng.

    V d: mn hnh VGA 640x480, SVGA 600x800

    1.1.3. Hto thit bchun (NDCS Normalized Device Coordinate System)

    Chuyn i i tng t khng gian thc vo to thit b hin th. Phn mm hoc vit s thc hin s chuyn i m cha th xc nh r kch thc ca thit b cng nh

    phn gii. Ta c cng cc lp vi thit b nhm m t vng hin th ra h to thit b chunho. Coi NDCS nh h to thit b c kch thc mn hnh hin th l mt hnh vung c cnhl mt n v (1x1).

  • 8/14/2019 Ki thuat do hoa

    60/173

    Chng 4: Cc gii thut ha cs

    60

    Hnh 4.2 WCS World Coordinate System

    Hnh 4.3 NDCS NormalizedDevice Coordinate System

    Hnh 4.4 DCS Device Coordinate System

    - Qui trnh chuyn i cc i tng trong WCS sang NDCS c gi l php nh xca s sang cng xem hay php bin i chun ho (Window to Viewport mapping or

    Normalization Transformation)

    - Qui trnh c th p cc to thit b hin th chun ho sang cc thit b ri rc c gil php bin i trm lm vic (Workstation Transformation)

  • 8/14/2019 Ki thuat do hoa

    61/173

    Chng 4: Cc gii thut ha cs

    61

    1.2. Php nh x tca s vo cng xem

    Hnh 4.5 i tng trong ca s

    Hnh 4.6 i tng ti cng xem

    - Mt ca s (window) c ch nh bi bn to thc (WCS): Xwmin, Xwmax,Ywmin, Ywmax

    - Mt cng xem (viewport) c m t bi bn to thit b chun ho (NDCS): Xvmin,

    Xvmax, Yvmin, Yvmax

    Mc ch ca php nh x ny l chuyn i cc to thc (Xw,Yw) ca mt im tu sang thit b chun ho tng ng (Xv,Yv). gi li khong cch ca im trong cng xem

    bng vi khong cch ca im trong ca s, vi yu cu:

    minmax

    min

    minmax

    max

    ww

    ww

    vv

    vv

    xx

    xx

    xx

    xx

    =

    minmax

    min

    minmax

    max

    ww

    ww

    vv

    vv

    yy

    yy

    yy

    yy

    =

    Ta c:

  • 8/14/2019 Ki thuat do hoa

    62/173

    Chng 4: Cc gii thut ha cs

    62

    maxminminmax

    minmax )()(

    )(vww

    ww

    vvv xxx

    xx

    xxx +

    =

    maxminminmax

    minmax

    )()(

    )(vww

    ww

    vv

    v yyyyy

    yy

    y +

    =

    Ta c tm gi trtrn xc nh ca s v cng xem u l hng s. Vy chng ta honton tnh c (Xv,Yv) t (Xw, Yw) qua php bin i:

    [XvYv1] = [XwYw 1]. [T]

    [T] = [Ttt-]. [Ts] . [Ttt]

    - Ma trn tnh tin theo window:

    [ ]

    =

    1010

    001

    ww

    tt

    yxT

    - Ma trn chuyn i t l window vo viewport l:

    [ ]

    =

    100

    00

    00

    minmax

    minmax

    minmax

    minmax

    ww

    vv

    ww

    vv

    syy

    yy

    xx

    xx

    T

    - Ma trn tnh tin theo to viewport:

    [ ]

    =

    1

    010

    001

    vv

    tt

    yx

    T

    Vy ma trn bin i t ca s vo cng xem:

    [ ]

    =

    1..

    00

    00

    minmax

    minmaxminmin

    minmax

    minmaxminmin

    minmax

    minmax

    minmax

    minmax

    ww

    vvwv

    ww

    vvwv

    ww

    vv

    ww

    vv

    yy

    yyyy

    xx

    xxxx

    yyyy

    xx

    xx

    T

    2. CC GII THUT XN TI (CLIPPING)

    2.1. Khi nim

    Xn ta l tin trnh xc nh cc im ca mt i tng nm trong hay ngoi ca s hinth. Nm trong c hin th, nm ngoi loi b.

    Vic loi tng im nh ca i tng thng chm nht l khi i tng m phn ln nmngoi ca s hin th.

  • 8/14/2019 Ki thuat do hoa

    63/173

    Chng 4: Cc gii thut ha cs

    63

    2.2. Clipping im

    Gi s (x,y) l to ca mt im, vy im c hin th khi tho mn:

    Xmin

  • 8/14/2019 Ki thuat do hoa

    64/173

    Chng 4: Cc gii thut ha cs

    64

    Qui c sign(a) = 1 nu a dng

    = 0 nu a m

    Qu trnh kim tra v tr ca on thng so vi ca s. Tt cim u v im cui ca

    on thng c m. Nu m ca P1 hoc P2u = 0000 th ton bon thng thuc phn hin th.

    If (P1.M OR P2.M == 0000) then con thng thuc ca s hin th

    Nu m ca P1 v P2 c cng mt v tr m P1 v P2 => cng pha

    If (P1.M AND P2.M != 0000) then 2 im nm v 1 pha ca ca s

    Xt giao im:

    Hnh 4.9 M t thut ton Cohen Sutherland outcode

    - Tm giao im ca ng thng vi ca s, chnh xc hn l vi phn mrng ca ngbin.

    - Ch : cc ng bin m im cui c chn s y ngang qua nhm thay i m 1thnh 0

    - Nu:

    Bt 1 l 1: ct y=ymax

    Bt 2 l 1: ct y= ymin

    Bt 3 l 1: ct x=xmax

    Bt 4 l 1: ct x=xmin

    Nhn trn hnh ta c: gi im cui ca on (x1,y1)

    Nu C c chn th ng y=ymin chn tnh phn ct nhau (bt 2 = 1)

    Nu D c chn th y=ymax hoc x=xmax (bt 1 v bt 3 =1)

    To ct:

    =

    =

    +=

    =

    max

    min

    11

    maxmin

    )(

    /

    xx

    xx

    xxmyy

    xxx

    ii

    i

    Hoc:

    ymax

    ymin

    xmin xmax

    A(0001)

    B(1000)

    C(0100)

    D(1010)

  • 8/14/2019 Ki thuat do hoa

    65/173

    Chng 4: Cc gii thut ha cs

    65

    max

    min

    maxmin

    11

    /

    /)(

    yy

    yy

    yyy

    myyxx

    i

    ii

    =

    =

    =

    +=

    C m l dc ca on thng

    m=(y2-y1)/(x2-x1)

    By githay im cui (x1,y1) vi im ct (xi,yi)

    V d: Cho ca s ct ta hnh ch nht c gc tri di L(-3,1), gc phi trn R(2,6)

    Hy tm m vng dnh cho cc im cui ca cc on AB c A(-2,3), B(1,2) ; CD c C(-4,7), D(-2,10) ; IK c I(-4,2), K(-1,7)

    Tm hng mc ct ta ca chng

    Gii:

    - M vng

    Bt 1 = sign(y-ymax) = sign(y-6)Bt 2 = sign(ymin-y) = sign(1-y)Bt 3 = sign(x-xmax) = sign(x-2)Bt 4 = sign(xmin-x)= sign(-3-x)Qui c sign(a) = 1 nu a dng

    = 0 nu a mVy:

    A(-2,3) c (0000)B(1,2) c (0000)C(-4,7)c (1001)D(-2,10) c (1000)

    I(-4,2) c (0001)K(-1,7) c (1000)- Hng mc ct ta

    AB c m vng u l (0000) nn n nm hon ton trongCD c (1001) and (1000) = (1000) (!= (0000)) nn hon ton nm ngoiIK c (0001) or (1000) =(1001) v (0001) and (1000) =(0000) nn phi xn ta.Xt I(0001) da trn ng bin xmin =-3

    +=

    =

    )( 11

    min

    xxmyy

    xx

    cc

    c

    xmin = -3

    m=(y2-y1)/x2-x1)= (7-2)/ (-1-(-4)) = 5/3

    yc=2 + 5/3 (-3-(-4)) = 11/3

    Thay I bi I1 (-3,11/3) (c m vng 0000)

    Xt K(1000) ct ymax =6

    =

    +=

    max

    11 /)(

    yy

    myyxx

    c

    cc

    yc=6

    xc=-1 +(6-7)/(5/3)=-8/5Thay K bi K1(-8/5,6) c m vng 0000)

  • 8/14/2019 Ki thuat do hoa

    66/173

    Chng 4: Cc gii thut ha cs

    66

    Vy sau khi xn ta on IK thu c I1K1

    2.3.2. Gii thut Lyangbarsky

    Biu din on thng theo tham bin: on thng bt k i qua hai im P1(x1,y1) v

    P2(x2,y2) chng ta c phng trnh tham bin:

    Hnh 4.10 Phng trnh tham s cho on thng

    x=x(u) c 0

  • 8/14/2019 Ki thuat do hoa

    67/173

    Chng 4: Cc gii thut ha cs

    67

    + Vi im (x,y) nm bn trong ca s ct ta:

    xmin

  • 8/14/2019 Ki thuat do hoa

    68/173

    Chng 4: Cc gii thut ha cs

    68

    u1 l cc gi tr cc i ca tp hp ang cha 0 v cc gi tr ukc tnh

    u2 l cc gi tr cc tiu ca tp hp ang cha 1 v cc gi tr ukc tnh

    V d: cho ca s ct ta hnh ch nht c gc tri di L(1,2) v gc phi trn R(9,8). Ccc on AB to A(11,10) v B(11,6), on CD to C(3,2) v D(8,4), on IJ to I(-1,7)v J(11,1). Tm cc hng mc ct ta.

    Gii:

    Xt AB

    P1 = 0q1=10

    P2 = 0q2=-2

    P3 = -4q3=4

    P4 = 4q4=2

    C P2 =0 m q2 =-2

  • 8/14/2019 Ki thuat do hoa

    69/173

    Chng 4: Cc gii thut ha cs

    69

    Vy ng sau khi ct ta l: I1I2 c I1(1,6) v I2(9,2)

    2.4. Gii thut xn ta a gic (Sutherland Hodgman)

    2.4.1. Khi nim

    Hnh 4.12 Cc loi a gic

    - a gic li: l a gic c ng thng ni bt k 2 im bn trong no ca a gic unm trn trong a gic. a gic khng li l a gic lm.

    - Theo qui c: mt a gic vi cc nh P1, .....,PN (cc cnh l Pi-1Pi v PNP1) c gi ltheo hng dng nu cc hnh theo th t cho to thnh mt mch ngc chiu kimng h.

    Nu bn tay tri ca mt ngi dc theo bt k cnh Pi-1Pi hoc PNP1 cng ch v bntrong a gic.

    Hnh 4.13 Qui tc tm hng dng ca mt a gic hng

    - Kho st mt im so vi mt ng thng:

    Hnh 4.14 Kho st mt im so vi ng thng

    C im A(x1,y1), B(x2,y2) v P(x,y)

    Theo nh ngha th tch ca hai vect (ABxAP) ch theo hng ca vectK vi mt

    phng (xoy). C:AB=(x2-x1)i + (y2-y1)j

    triangular convex non-convex self-intersecting religious

    L

    R

    K

    A(x1,y1)

    P(x,y)

    B(x2,y2)

    ABxAP

  • 8/14/2019 Ki thuat do hoa

    70/173

    Chng 4: Cc gii thut ha cs

    70

    AP=(x-x1)i + (y-y1)j

    Vy ABxAP=[ (x2-x1).(y-y1) (y2-y1).(x-x1) ].K

    Do hng c xc nh nh sau:

    ))(())(( 112112 xxyyyyxxC = - Nu C dng th P nm bn tri AB

    - Nu C m th P nm bn phi AB

    2.4.2. Gii thut Hodgman

    Cho P1,......,PN l danh sch cc nh ca a gic b ct ta. Cho cnh AB (im A,B) lcnh bt k. a gic ct ta li hng dng.

    Hnh 4.15 Cc trng hp trong gii thut Hodgman

    Nu c Pi-1 v Piu nm bn tri ca cnh ny th Pic lu li (a vo output) caa gic ct ta.

    Nu c Pi-1 v Piu nm bn phi ca cnh th khng c nh no c lu li.

    Nu Pi-1 nm bn tri v Pi nm bn phi ca cnh th giao im I ca Pi-1Pi vi cnh sc lu li.

    Nu Pi-1 nm bn phi v Pi nm bn tri th c giao im I v Piu c lu li.

    2.4.3. Minh ho thut ton Sutherland Hodgman

    F=P1 (F l nh c a vo u tin, S l nh a vo trc P - nh c a). Sbn phi khp kn a gic bi PNP1

    A

    B

    A A A

    B BBPi-1

    Pi

    output

    Pi

    Pi

    Pi

    Pi-1

    Pi-1Pi-1

    I

    I

    output

    output

    output

  • 8/14/2019 Ki thuat do hoa

    71/173

    Chng 4: Cc gii thut ha cs

    71

    Hnh 4.16 S khi thut ton Hodgman

    2.4.4. V d minh ho:

    Begin

    P(Vertex Input)Vertex Output, F,AB,N

    I=1S=Pi

    i=1

    i++ F=P1

    SPi ctAB

    Giao ct I

    Vertex outputI

    S=Pi

    S bn triAB

    i

  • 8/14/2019 Ki thuat do hoa

    72/173

    Chng 4: Cc gii thut ha cs

    72

    V d 1: ct ta a gic A1,.A5 da trn ca s ABCD

    Hnh 4.17 V d dng gii thut Hodgman xn ta a gic A1...A5

    V d 2: hy s dng thut ton Hodgman ct xn on thng ni P1(-1,2) n P2(6,4)

    trn ca s A(1,1), B(5,1), C(5,3) v D(1,3)

    Hnh 4.18 V d dng thut ton Hodgman xn ta on P1P2

    A

    B C

    D

    A1

    A2

    A3

    A4

    A5

    A

    B C

    D

    B1

    B2 B3

    B4

    B5

    A

    B C

    D

    C1

    C2C3

    C4

    C5

    A

    B C

    D

    D1

    D2 D3

    D4

    D5

    A

    B C

    D

    E1

    E2E3

    E4

    E5

    P1(-1,2)

    D(1,3)

    A(1,1)B(5,1)

    C(5,3)

    P2(6,4)I1I2

    I3

  • 8/14/2019 Ki thuat do hoa

    73/173

    Chng 4: Cc gii thut ha cs

    73

    Theo thut ton Hodgman ta xn P1P2 da trn tng cnh.

    AB: ta xt C=(x2-x1)(y-y1) (y2-y1)(x-x1)

    im P1: C=(5-1)(2-1)-(1-1)(-1-1) = 4 >0 nm bn tri

    im P2: C= (5-1)(4-1)-(1-1)(-1-1) = 12 >0 nm bn triVy P1P2u c lu

    BC

    im P1:C = (5-5)(2-1)-(3-1)(-1-5)= 12 >0 nm bn tri

    im P2:C = - (3-1)(6-5) = -2 0 nm bn tri

    im I1:C=(1-5)(26/7 -3) = -20/7

  • 8/14/2019 Ki thuat do hoa

    74/173

    Chng 4: Cc gii thut ha cs

    74

    thng mi hnh nh m chng ta quan st c trn mn hnh thit bc gi l mt gc nhn(view) ca i tng.

    Qu trnh loi b cc phn hnh nh nm ngoi mt vng cho trc c gi l xn ta.Vng c dng xn ta gi l ca s xn ta.

    Cc thut ton xn ta on thng Cohen-Sutherland, LyaBarsky u tp trung gii quythai vn chnh nhm ti u tc thut ton l: loi b vic tm giao im i vi cc onthng chc chn khng ct ca s (nh nm hon ton trong, nm hon ton ngoi), v vi onthng c kh nng ct ca s, cn phi tm cch hn ch s ln tm giao im vi cc bin khngcn thit. Thut ton Cohen-Sutherland gii quyt hai ny thng qua kiu d liu m vng mv bn cht ch l s m t v tr tng i ca vng ang xt so vi cc bin ca ca s. Cnthut ton LyaBarsky th tuy da vo phng trnh tham s ca on thng l p lun nhngthc cht l da trn vic xt cc giao im c th c gia on thng ko di vi cc bin caca s (cng c ko di). Cc giao im ny tng ng vi cc gi tr rk = qk/pk. C hai thut

    ton ny u c thc mrng cho vic xn hnh trong ho 3D.

    Bi tp:

    1. Tm php bin i chun ho to nh x cho mt ca s m gc bn tri pha di ca n(1,1) v gc bn phi trn (3,5) vo:

    a. L mn hnh thit bc chun ho ton b.

    b. Mt cng xem c gc bn tri di (0,0) v gc bn tri trn (1/2,1/2)

    2. Cho ca s ct ta hnh ch nht c gc bn tri di (-3,-2) v gc phi trn (2,3), dnggii thut Cohen Sutherland xn ta on thng AB c to l A(3,2) v B(-2,-4).

    3. Cho ca s ct ta hnh ch nht c gc bn tri di (-3,-2) v gc phi trn (2,3), dnggii thut LyaBarsky xn ta on thng AB c to l A(3,2) v B(-2,-4).

    4. Vit chng trnh ci t thut ton Cohen Sutherland.

    5. Vit chng trnh ci t thut ton LyaBarsky

    6. Vit chng trnh ci t thut ton Sutherland Hodgman

    Bi tp trc nghim:

    1. H to thit b chun (NDCS) c kch thc mn hnh hin th l hnh ch nht cchiu di gp i chiu rng. Vy nu mt hnh ch nht ng (c chiu di gp i chiurng khi hin th trn mn hnh s cho:

    a. Hnh ch nht nm ngang (chiu di gp i chiu rng)

    b. Hnh vung

    c. Vn l hnh ch nht ng

    d. Hnh ch nht c chiu di gp 1.5 chiu rng

    2. Php bin i chun ho to nh x cho mt ca s m gp bn tri pha di (1,3) v gc

    bn phi trn (4,7) vo mn hnh c chun ho ton b l:

  • 8/14/2019 Ki thuat do hoa

    75/173

    Chng 4: Cc gii thut ha cs

    75

    a.

    1413

    31

    04

    10

    003

    1

    b.

    3

    100

    020

    213

    1

    c.

    14

    13

    4

    1

    0310

    033

    1

    d.

    1

    4

    130

    03

    110

    3

    102

    3. Cho ca s ct ta gc tri di (-2,2) v gc phi trn (4,7). M vng 4bt ca im A(-3,-1) l:

    a. 1000

    b. 1010

    c. 0101

    d. 0001

    4. Cho ca s ct ta c gc tri di (2,-3) v phi trn (5,6), m vng 4bt ca imM(6,10) l:

    a. 1010

    b. 1100

    c. 0101

    d. 0001

    5. Cho ca s ct ta c gc tri di (2,2) v gc phi trn (5,10). Cho on AB c A(1,5)v B(6,8), sau khi xn ta ta thu c to mi l:

    a.

    3,5

    235,

    5

    33

  • 8/14/2019 Ki thuat do hoa

    76/173

    Chng 4: Cc gii thut ha cs

    76

    b.

    5

    33,32,

    5

    13

    c.

    2,

    5

    27

    5

    13,5

    d.

    5

    27,5

    5

    35,2

    6. Cho ca s ct ta c gc tri di (1,2) v phi trn (9,8). on thng MN c M(-1,7) vN(11,1), sau khi xn ta ta thu c on thng c to l:

    a. (2,6) v (7,1)

    b. (5,2) v (9,1)

    c. (1,6) v (9,2)

    d. (3,9) v (6,3)7. Gii thut LyaBarsky da vo phng trnh ng thng:

    a. Tng minh y=f(x)

    b. Khng tng minh f(x,y) = 0

    c. Tham s x = x(t), y = y(t) c t [0,1]

    d. Do ng a ra

    8. Trong cc cu ni sau cu no sai ?

    a. on thng c hin th khi c hai u cui u trong ca s hin th

    b. on thng nm hon ton ngoi khi n phm bt k mt trong bn bt ng thcsau:

    x1,x2>xmaxx1,x2 ymaxy1,y2 =xmaxx1,x2 = ymaxy1,y2

  • 8/14/2019 Ki thuat do hoa

    77/173

    Chng 4: Cc gii thut ha cs

    77

    10. Hm sau l mt hm trong gii thut Cohen Sutherland. Bn hy cho bit ln lt cc dnglnh , , , s cho cc m vng 4bt l: (chiu theo nh ngha m vng 4bt trong sch kthut ho)

    unsigned char encode(double x, double y, double xmin, double ymin,

    double xmax, double ymax)

    {

    unsigned char code = 0x00;

    if (x < xmin)

    code = code | LEFT_EDGE;//

    if (x > xmax)

    code = code | RIGHT_EDGE; //

    if (y < ymin)

    code = code | TOP_EDGE; //

    if (y > ymax)

    code = code | BOTTOM_EDGE;//

    return code;

    }

    a. 0x8, 0x4, 0x2 v 0x1b. 0x1, 0x2, 0x4 v 0x8c. 0x1, 0x2, 0x8 v 0x4d. 0x2, 0x8, 0x4 v 0x1

    11. Bn hy cho bit hm sau l mt trong nhng hm ci t cho gii thut xn ta no?#define TRUE 1

    #define FALSE 0int cliptest(double p, double q, double *u0, double *u1)

    {

    double r;

    int retVal = TRUE;

    if (p < 0.0)

    {

    r = q / p;

    if (r > *u1)

    retVal = FALSE;

    else

    if (r > *u0)*u0 = r;

    }

    else

    if ( p > 0.0)

    {

    r = q / p;

    if (r < *u0)

    retVal = FALSE;

    else

    if (r < *u1)

    *u1 = r;

    }

    else

  • 8/14/2019 Ki thuat do hoa

    78/173

    Chng 4: Cc gii thut ha cs

    78

    {

    if (q < 0.0)

    retVal = FALSE;

    }

    return (retVal);}

    a. Cohen Sutherlandb. Lyabarskyc. Hodgmand. Khng phi gii thut xn ta

  • 8/14/2019 Ki thuat do hoa

    79/173

    Chng 5: Phiu chiu Projection

    79

    CHNG 5: PHP CHIU PROJECTION

    1. KHI NIM CHUNG

    1.1.Nguyn l v 3D (three-Dimension)

    ha 3 chiu (3D computer graphics) bao gm vic b xung kch thc v chiu su cai tng, cho php ta biu din chng trong th gii thc mt cch chnh xc v sinh ng hn.

    Tuy nhin cc thit b truy xut hin ti u l 2 chiu, Do vy vic biu din c thc thithng qua php t cht (render) gy o gic (illusion) v su

    ho 3D l vic chyn th gii t nhin di dng cc m hnh biu din trn cc thit bhin th thng qua k thut t cht (rendering).

    1.2. c im ca k thut ho 3D

    C cc i tng phc tp hn cc i tng trong khng gian 2D

    - Bao bi cc mt phng hay cc b mt

    - C cc thnh phn trong v ngoi

    Cc php bin i hnh hc phc tp

    Cc php bin i h to phc tp hn

    Thng xuyn phi b xung thm php chiu t khng gian 3D vo khng gian 2D

    Lun phi xc nh cc b mt hin th

    1.3.Cc phng php hin th 3D

    Vi cc thit b hin th 2D th chng ta c cc phng php sau biu din i tng 3D:

    - K thut chiu (projection): Trc giao (orthographic)/phi cnh (perspective)

    - K thut nh du su (depth cueing)

    - Nt khut (visible line/surface identification)

    - T cht b mt (surface rendering)

    - Ct lt (exploded/cutaway scenes, cross-sections)

    Cc thit b hin th 3D:- Knh stereo - Stereoscopic displays*

    - Mn hnh 3D Holograms

  • 8/14/2019 Ki thuat do hoa

    80/173

    Chng 5: Phiu chiu Projection

    80

    Exploded/cutawayscenes (ct lt)

    Perspective (phicnh) and Depth of

    Field (chiu su)

    Shadows as depth cues (to bng cmgic c chiu su)

    Hnh 5.1 Cc cch m ti tng 3D

    Hnh chiu cnh Hnh chiu bng Hnh chiu ng

    Hnh 5.2 Cc gc nhn khc nhau ca m hnh 3D

  • 8/14/2019 Ki thuat do hoa

    81/173

    Chng 5: Phiu chiu Projection

    81

    Hnh 5.3 Cc cch m ti tng 3D

    2.PHP CHIU

    nh ngha vphp chiu

    Mt cch tng qut, php chiu l php chuyn i nhng im ca i tng trong hthng ta n chiu thnh nhng im trong h thng ta c s chiu nh hn n.

    nh ngha vhnh chiu

    nh ca i tng trn mt phng chiu c hnh thnh t php chiu bi cc ngthng gi l tia chiu (projector) xut pht t mt im gi l tm chiu (center of projection) iqua cc im ca i tng giao vi mt chiu (projection plan).

    Cc bc xy dng hnh chiu

    1. i tng trong khng gian 3D vi ta thc c ct theo mt khng gian xc nhgi l view volume.

    2. View volume c chiu ln mt phng chiu. Din tch chon bi view volume trn mtphng chiu s cho chng ta khung nhn.

    3. L vic nh x khung nhn vo trong mt cng nhn bt k cho trc trn mn hnh hin th hnh nh.

    M hnh 3D(3D Modelling)

    Tham s(Parametric)

    a gic(Polygonal)

    Mnh nh(Particles)

    Nt khut(Implicit)

    2222

    rzyx =++

    2

    4

    cos

    sin

    =

    =

    y

    x

  • 8/14/2019 Ki thuat do hoa

    82/173

    Chng 5: Phiu chiu Projection

    82

    Hnh 5.4 M hnh nguyn l ca tin trnh biu din i tng 3D

    Hnh 5.6 Phn loi cc php chiu

    Ct theo viewvolum

    Php chiu trnmt phng chiu

    Php bin i vocng nhn cata thit b

    ta thc3D

    ta theo vngct khung nhn

    ta thitb

    Php chiu hnh hcphng

    Php chiu songsong

    Php chiu phi cnh

    Mt im

    Ba im

    Hai im

    Trc giao Php chiuXin

    Cavalier

    Cabinet

    Php chiukhc

    Chiung

    Chiucnh

    Axonometric

    Trimetric

    Dimetric

    Isometric

    Chiubng

  • 8/14/2019 Ki thuat do hoa

    83/173

    Chng 5: Phiu chiu Projection

    83

    Hnh 5.5 V d minh ho cc php chiu phi cnh

    3. PHP CHIU SONG SONG (Parallel Projections )

    Php chiu song song (Parallel Projections) l php chiu m cc tia chiu song songvi nhau hay xut pht tim v cng.

    Phn loi php chiu song song da trn hng ca tia chiu (Direction Of Projection) vmt phng chiu (projection plane).

    3.1.Php chiu trc giao (Orthographic projection)

    L php chiu song song v tia chiu vung gc vi mt phng chiu. V mt ton hc,php chiu trc giao l php chiu vi mt trong cc mt phng to c gi tr bng 0. Thngdng mt phng z=0, ngoi ra x=0 v y=0.

    ng vi mi mt phng chiu ta c mt ma trn chiu tng ng.

    Hnh 5.7 Php chiu trc giao

    =

    1000

    0000

    0010

    0001

    ][ zT

    =

    1000

    0100

    0000

    0001

    ][ yT

    =

    1000

    0100

    0010

    0000

    ][ xT

  • 8/14/2019 Ki thuat do hoa

    84/173

    Chng 5: Phiu chiu Projection

    84

    Thng thng th ngi ta khng s dng c 6 mt phng suy din ngc hnh ca mti tng m ch s dng mt trong s chng nh: hnh chiu bng, ng, cnh.

    C su gc nhn u c th thu c t mt mt phng chiu thng qua cc php bin ihnh hc nh quay, dch chuyn hay ly i xng.

    V d: gi s chng ta c hnh chiu bng trn mt phng z=0, vi php quay i tngquanh trc mt gc 900 s cho ta hnh chiu cnh.

    i vi cc i tng m cc mt ca chng khng song song vi mt trong cc mt phngh to th php chiu ny khng cho hnh dng tht ca vt th. Mun nhn vt th chnh xchn ngi ta phi hnh thnh php chiu thng qua vic quay v dch chuyn i tng sao chomt phng song song vi cc trc to.

    Hnh ca i tng qu phc tp cn thit phi bit cc phn bn trong ca i tng ilc chng ta phi to mt ct i tng.

    3.2. Php chiu trc lung (Axonometric)Php chiu trc lng l php chiu m hnh chiu thu c sau khi quay i tng sao cho

    ba mt ca i tng c trng thy r nht (thng mt phng chiu l z=0).

    C 3 php chiu- Php chiu Trimetric- Php chiu Dimetric- Php chiu Isometric

    3.2.1.Php chiu Trimetric

    L php chiu hnh thnh t vic quay t do i tng trn mt trc hay tt c cc trc ca

    h ta v chiu i tng bng php chiu song song ln mt phng chiu (thng l mtphng z = 0).

    Ngoi tr nhng mt phng ca i tng song song vi mt phng chiu khng thay i.Cc mt khc ca i tng hay hnh dng ca i tng thng bin dng sau php chiu.Tuynhin t l co (Shortening Factor - SF) l t s ca di on thng chiu so vi di thc tca i tng. Trn csSF php chiu trc lng c chia lm ba loi sau:

    Php chiu Trimetric

    Php chiu Dimetric

    Php chiu IsometricVic tnh cc gi tr SF ny ca cc trc tng ng da vo cng thc [U]* [T].

    [ U ]: l ma trn vectorn v ca cc trc x, y, z bt bin

    [ T ]: l ma trn chiu tng hp tng ng

    SF- t l co theo cc trc l:

    =

    =

    1000

    10

    10

    10

    ][

    1100

    1010

    1001

    ][''

    ''

    ''

    zz

    yy

    xx

    yx

    yx

    yx

    TU

  • 8/14/2019 Ki thuat do hoa

    85/173

    Chng 5: Phiu chiu Projection

    85

    2'2'xxx yxf +=

    3.2.2.Php chiu Dimetric

    L php chiu Trimetric vi 2 h s t l co bng nhau, gi tr th 3 cn li l tu .

    Php chiu c xy dng bng cch quay i tng quanh trc y theo mt gc , tip

    quanh quanh trc ox mt gc v sau cng l php chiu trn mt phng z=0 vi tm chiu ti vtn.

    Hnh 5.8 nh ca php chiu Trimetric vi cc tham s gc xoay thay i

    2222'2'2 sin.sincos)( +=+= xxx yxf

    =

    =

    1000

    0000

    0010

    0001

    .

    1000

    0cossin0

    0sincos0

    0001

    .

    1000

    0cos0sin

    0010

    0sin0cos

    ]][][[][

    PzRxRyT

    =

    =

    1000

    00

    00

    00

    1000

    00sincossin

    00cos0

    00sinsincos

    ][''

    ''

    ''

    zz

    yy

    xx

    yx

    yx

    yx

    T

    22'2'2 cos)( =+= yyy yxf

    22 '' zzz yxf +=22 '' yyy yxf +=

  • 8/14/2019 Ki thuat do hoa

    86/173

    Chng 5: Phiu chiu Projection

    86

    T l co trn x v y bng nhau nn ta c:

    cos2 = cos2 + sin2.sin2

    1- sin2 = 1-sin2 + sin2.sin2

    sin2(sin2-1) = - sin2

    2

    22

    sin1

    sinsin

    =

    2

    2

    2

    222

    sin1

    sin

    sin1

    sinsin

    =

    = zf

    2sin2 zf

    =

    )2

    (sin 1 zf

    =

    Ta thy t l co thuc khong [0 1], vi mi fz ta c bn kh nng ca php chiu.

    fz = 0 fz =1/2 fz = 1

    Hnh 5.9 Php chiu hnh hp vi f=0, f=1/2 v f=1

    Khi fz =1/2 th:

    208.22)378.0(sin)4/7

    2/1(sin

    705.20)35355.0(sin)22

    1(sin

    11

    011

    ==

    =

    3.2.3.Php chiu Isometric

    L php chiu trc lng m h s co cnh trn 3 trc l bng nhau.

    Gc quay tng ng l 35.260 v 450

    c ng dng nhiu trong vic xy dng cc gc quan st chun cho i tng trong cch son tho ho.

    )sin1(sinsin)sin1(sinsin

    sincossin)(222222

    2222'2'2

    +=+=

    +=+= zzz yxf

    2

    22

    sin1

    sin21sin

    =

    2

    22

    sin1

    sinsin

    =

    )2

    (sin2

    1

    z

    z

    f

    f

    =

  • 8/14/2019 Ki thuat do hoa

    87/173

    Chng 5: Phiu chiu Projection

    87

    026.35

    3

    1sin

    =

    =

    0

    2

    22

    45

    2

    1sin

    2/13/11

    3/1sin1

    sinsin

    =

    =

    =

    =

    =

    V d cc php chiu song song:

    othergraphic oblique

    Dimetric isometric

    Hnh 5.10 V d cc php chiu song song

    3.3. Php chiu xin - Oblique

    Php chiu Cavalier Php chiu Cabinet

    045

    026.35==

    8165.03/2cos2 === f

  • 8/14/2019 Ki thuat do hoa