201
HC VIN CÔNG NGHBƯU CHÍNH VIN THÔNG --------------------------------------- NGUYN THU THO ĐỀ TÀI LUN VĂN ĐỔI MI CƠ CHKHOCH SN XUT KINH DOANH TI BƯU ĐIN TRUNG ƯƠNG TRONG GIAI ĐON 2014 – 2020 Chuyên ngành: Qun trkinh doanh Mã s: 60.34.01.02 TÓM TT LUN VĂN THC SĨ HÀ NI – NĂM 2014 PTIT

Bai Giang Ky Thuat Do Hoa

Embed Size (px)

DESCRIPTION

Bài Giang Ky Thuat Do Hoa

Citation preview

  • HC VIN CNG NGH BU CHNH VIN THNG ---------------------------------------

    NGUYN THU THO

    TI LUN VN I MI C CH K HOCH SN XUT KINH DOANH TI BU IN TRUNG NG TRONG GIAI ON 2014 2020

    Chuyn ngnh: Qun tr kinh doanh M s: 60.34.01.02

    TM TT LUN VN THC S

    H NI NM 2014

    PTIT

    tttvTypewriter

    tttvTypewriter

    tttvTypewriter

    tttvTypewriter

  • Lun vn c hon thnh ti: HC VIN CNG NGH BU CHNH VIN THNG

    Ngi hng dn khoa hc: TS. Cao Th Thin Thu

    Phn bin 1: TS. Nguyn Thanh Tng

    Phn bin 2: TS. Nguyn Vn Tn

    Lun vn s c bo v trc Hi ng chm lun vn thc s ti Hc vin Cng ngh Bu chnh Vin thng Vo lc: 13 gi 30 ngy 15 thng 2 nm 2014

    C th tm hiu lun vn ti: - Th vin ca Hc vin Cng ngh Bu chnh Vin thng

    PTIT

    tttvTypewriter

    tttvTypewriter

  • PTIT

  • PTIT

  • LI NI U

    ho my tnh (Computer Graphics) l mt lnh vc l th v c nhiu ng dng

    trong thc t, n gp phn lm cho giao tip gia con ngi v my tnh tr nn thn

    thin hn. Giao din kiu vn bn (text) c thay th hon ton bng giao din

    ho. Tuy nhin, vic dy v hc k thut ha th khng n gin do ch ny c

    nhiu phc tp. K thut ha lin quan n tin hc v ton hc bi v hu ht cc gii

    thut v, t cng cc php bin hnh u c xy dng da trn nn tng ca hnh hc

    khng gian hai chiu v ba chiu. Hin nay, K thut ha l mt mn hc c ging

    dy cho sinh vin chuyn ngnh Cng Ngh Thng Tin.

    Trong cun gio trnh ny, ti mun mang li cho bn c cc c s l thuyt v

    ho my tnh t n gin nht nh cc thut ton v ng thng, ng trn, a gic, k

    t... Tip n cc k thut xn ta, cc php bin i ho trong khng gian 2D v

    3D...Chng ta ln lt lm quen vi th gii mu sc thng qua cc h mu: RGB,

    CMYK, HSV.... Phc tp hn na l cc php chiu, cc phng php xy dng ng

    cong v mt cong cho i tng. Cui chng ta tm hiu v nh sng v hnh hc fractal.

    Gio trnh gm chn chng, trong chng mt gip bn c c ci nhn tng

    quan v k thut ho t trc n gi cng nh hng tng lai cho lnh vc ny. Cc

    chng tip theo, mi chng s l mt vn t n gin n phc tp v c s nn tng

    cho ngnh k thut ho. Cui mi chng u c phn bi tp kim tra li kin thc

    va c c. Bi tp gm hai dng: dng tnh ton v dng lp trnh, 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 lm bi tp lp trnh, ngn ng hay dng y l C/C++ hay

    BC.

    B cc r rng, hnh nh phong ph, a dng. Ti hy vng rng gio trnh l mt b

    tham kho y cc thng tin hu ch v c tnh thc tin cao cho mn k thut ho.

    Trong qu trnh bin son mc d c gng ht sc nhng vn khng trnh khi

    nhng sai st, rt mong nhn c s ng gp chn thnh t qu bn c.

    Xin chn thnh cm n.

    Tc gi

    PTIT

  • Mc lc

    2

    MC LC

    LI NI U ........................................................................................................................ 1

    MC LC .............................................................................................................................. 2

    CHNG 1: TNG QUAN V K THUT HO ...................................................... 7

    1.1. CC KHI NIM TNG QUAN CA K THUT HO MY TNH

    (COMPUTER GRAPHICS) ......................................................................................................... 7

    1.1.1. L ch s pht trin ................................................................................................. 7

    1.1.2. K thut ha vi tnh. ...................................................................................... 8

    1.2. CC K THUT HO ....................................................................................... 8

    1.2.1. K thut ho im (Sample based-Graphics) ................................................. 8

    1.2.2. K thut ho vector .......................................................................................... 9

    1.2.3. Phn loi ca ho my tnh ........................................................................... 10

    1.2.4. Cc ng dng tiu biu ca k thut ha ....................................................... 11

    1.2.5. Cc chun giao din ca h ho ..................................................................... 13

    1.3. PHN CNG HO (GRAPHICS HARDWARE) ............................................ 13

    1.3.1. Cc thnh phn phn cng ca h ho tng tc........................................... 13

    1.3.2. My in ................................................................................................................. 14

    1.3.3. Mn hnh CRT .................................................................................................... 14

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

    Tm tt chng: ............................................................................................................... 17

    Bi tp: .............................................................................................................................. 18

    CHNG 2: CC GII THUT SINH THC TH C S ............................................ 19

    2.1. CC H THNG TO TRONG HO....................................................... 19

    2.1.1. H to thc (WCS World Coordinate System) ........................................... 19

    2.1.2. H to thit b (DCS Device Coordinate System) ...................................... 19

    2.1.3. to thit b chun (NDCS Normalized Device Coordinate System) ........... 20

    2.2. IM V ON THNG ....................................................................................... 20

    2.2.1. im ................................................................................................................... 20

    2.2.2. on thng .......................................................................................................... 20

    2.3. CC GII THUT XY DNG THC TH C S ........................................... 21

    2.3.1. Gii thut v on thng thng thng .............................................................. 21

    2.3.2. Gii thut Bresenham ......................................................................................... 22

    2.3.3. Gii thut trung im-Midpoint .......................................................................... 23

    2.3.3. Gii thut sinh ng trn (Scan Converting Circles)(Bresenham) ................... 25

    2.3.5. Gii thut sinh ng trn Midpoint .................................................................. 28

    2.3.6. Gii thut sinh ng ellipse ............................................................................. 30

    2.3.7. Gii thut sinh k t .......................................................................................... 33

    2.3.8. Gii thut sinh a gic (Polygon) ....................................................................... 34

    PTIT

  • Mc lc

    3

    Tm tt chng: ............................................................................................................... 39

    Bi tp: .............................................................................................................................. 39

    CHNG 3: CC PHP BIN I HO .................................................................. 41

    3.1. CC PHP BIN I HNH HC HAI CHIU .................................................... 41

    3.1.1. Php bin i Affine (Affine Transformations) ................................................. 41

    3.1.2. Cc php bin i i tng ............................................................................... 41

    3.2. TA NG NHT V CC PHP BIN I ............................................. 45

    3.2.1. To ng nht ................................................................................................ 45

    3.2.2. Php bin i vi to ng nht .................................................................... 46

    3.2.3. Ci t c/c++ cho php quay tam gic quanh 1 im (xq,yq): ........................... 47

    3.3. CC PHP BIN I HNH HC BA CHIU ...................................................... 48

    3.3.1.Biu din im trong khng gian 3 chiu ............................................................ 48

    3.3.2. Php tnh tin ...................................................................................................... 48

    3.3.3. Php t l ............................................................................................................. 48

    3.3.4. Php bin dng.................................................................................................... 49

    3.3.5. Php ly i xng ............................................................................................... 49

    3.3.6. Php quay 3 chiu ............................................................................................... 49

    3.3.7. Ci t bng c/c++ nh sau: ............................................................................... 53

    Tm tt:............................................................................................................................. 54

    Bi tp: .............................................................................................................................. 54

    CHNG 4: CC GII THUT HO C S........................................................... 57

    4.1. M HNH CHUYN I GIA BA H THNG TO ................................. 57

    4.1.1. M hnh chuyn i ............................................................................................ 57

    4.1.2. Php nh x t ca s vo khung nhn ............................................................... 57

    4.2. CC GII THUT XN TI (CLIPPING) ............................................................ 59

    4.2.1. Khi nim ........................................................................................................... 59

    4.2.2. Clipping im ..................................................................................................... 59

    4.2.3. Xn ta on thng .............................................................................................. 59

    4.2.4. Gii thut xn ta a gic (Sutherland Hodgman) .............................................. 66

    Tm tt chng: ............................................................................................................... 70

    Bi tp: .............................................................................................................................. 70

    CHNG 5: PHP CHIU PROJECTION ...................................................................... 71

    5.1. KHI NIM CHUNG ............................................................................................... 71

    5.1.1.Nguyn l v 3D (three-Dimension) ................................................................... 71

    5.1.2. c im ca k thut ho 3D ....................................................................... 71

    5.1.3.Cc phng php hin th 3D .............................................................................. 71

    5.2.PHP CHIU ............................................................................................................. 72

    5.3. PHP CHIU SONG SONG (Parallel Projections ) ................................................. 74

    PTIT

  • Mc lc

    4

    5.3.1.Php chiu trc giao (Orthographic projection) .................................................. 74

    5.3.2. Php chiu trc lung (Axonometric) ................................................................ 75

    5.3.3. Php chiu xin - Oblique .................................................................................. 78

    5.4. PHP CHIU PHI CNH (Perspective Projection) .............................................. 79

    5.4.1. Php chiu phi cnh mt tm chiu .................................................................. 80

    5.4.2. Php chiu phi cnh hai tm chiu ................................................................... 81

    5.4.3. Php chiu phi cnh ba tm chiu .................................................................... 83

    Tm tt chng: ............................................................................................................... 83

    Bi tp: .............................................................................................................................. 83

    CHNG 6: MU SC TRONG HO ...................................................................... 85

    6.1. NH SNG V MU SC (light and color) .......................................................... 85

    6.1.1. Quan nim v nh sng ....................................................................................... 85

    6.1.2. Yu t vt l ....................................................................................................... 85

    6.1.3. Cm nhn mu sc ca con ngi (Physiology - Sinh l - Human Vision) ....... 87

    6.1.4. Cc c trng c bn ca nh sng ..................................................................... 89

    6.2. NH SNG N SC ............................................................................................ 89

    6.2.1. Cng sng v cch tnh ................................................................................ 90

    6.2.2. Php hiu chnh gama ......................................................................................... 90

    6.2.3. Xp x bn tng - halftone .................................................................................. 91

    6.2.4. Ma trn Dither v php ly xp x bn tng ....................................................... 93

    6.3. CC H MU TRONG MN HNH HA ...................................................... 93

    6.3.1. M hnh mu RGB (Red, Green, Blue - , lc, lam) ........................................ 94

    6.3.2. M hnh mu CMY (Cyan, Magenta, Yellow - xanh tm, ti, vng) ......... 94

    6.3.3. M hnh mu YIQ .............................................................................................. 95

    3.4. M hnh mu HSV (Hue, Saturation,Value) - M thut........................................ 96

    6.3.5. Biu mu CIE (1931 Commission Internationale de lEclairage) .............. 97

    6.4. CHUYN I GIA CC H MU ................................................................... 100

    6.4.1. Chuyn i HSV - RGB ................................................................................... 100

    6.4.2. Chuyn i RGB sang XYZ ............................................................................. 101

    Tm tt:........................................................................................................................... 102

    Bi tp: ............................................................................................................................ 102

    CHNG 7: NG CONG V MT CONG TRONG 3D ......................................... 104

    7.1. NG CONG - CURVE ..................................................................................... 104

    7.1.1. im biu din ng cong (curve represents points ) .................................. 104

    7.1.2. ng cong a thc bc ba tham bin ............................................................. 104

    7.1.3. ng cong Hermite ........................................................................................ 105

    7.1.4. ng cong Bezier ........................................................................................... 106

    7.1.5. ng cong B-spline ........................................................................................ 108

    PTIT

  • Mc lc

    5

    7.2. M HNH B MT (Surface) V CC PHNG PHP XY DNG ............ 114

    7.2.1. Cc khi nim c bn ....................................................................................... 114

    7.2.2. Biu din mnh t gic ..................................................................................... 115

    7.2.3. M hnh ho cc mt cong (Surface Patches) ................................................... 117

    7. ................................................................................................................................. 117

    7.2.4. Mt t cc ng cong ..................................................................................... 120

    Tm tt:........................................................................................................................... 125

    Bi tp: ............................................................................................................................ 125

    CHNG 8: NH SNG ................................................................................................. 127

    8.1. GII THIU ............................................................................................................ 127

    8.1.1. Mc tiu chnh trong ha my tnh .............................................................. 127

    8.1.2. Cc gii php trong ha my tnh ................................................................ 127

    8.2. CC K THUT CHIU SNG TRONG HA MY TNH ....................... 129

    8.2.1. nh gi v cng nh sng ........................................................................ 129

    8.2.2. Cng nh sng ........................................................................................... 130

    8.2.3. Nhng thuc tnh bao quanh ca vt cht ........................................................ 131

    8.2.4. Thuc tnh khuch tn ca vt cht .................................................................. 132

    8.2.5. S tng tc b mt/nh sng ........................................................................... 133

    8.2.6. S khc x v s truyn sng ........................................................................... 134

    8.3. CC CNG NGH ................................................................................................. 134

    8.3.1. Raytracing ......................................................................................................... 134

    8.3.2. Radiosity ........................................................................................................... 138

    8.3.3. Photon Mapping ............................................................................................... 143

    8.4. S SO SNH GIA CC K THUT (COMPARISON OF TECHNIQUES) .. 147

    8.4.1. Raytracing ......................................................................................................... 148

    8.4.2. Radiosity ........................................................................................................... 148

    8.4.3. Photon mapping ................................................................................................ 148

    Tm tt:........................................................................................................................... 149

    CHNG 9: HNH HC FRACTAL ............................................................................... 150

    9.1. S RA I V CC NG DNG CA HNH HC PHN HNH .................. 150

    9.1.1. S ra i ca l thuyt hnh hc phn hnh ...................................................... 150

    9.1.2. Cc ng dng tng qut ca hnh hc phn hnh .............................................. 151

    9.2. MT S K THUT CI T HNH HC PHN HNH ................................. 151

    9.2.1 H ng VONKOCK ...................................................................................... 151

    9.2.2. ng SIERPINSKI ........................................................................................ 154

    9.3. CY FRACTAL...................................................................................................... 155

    9.3.1. CC CY THC T: ..................................................................................... 155

    9.3.2. BIN DIN TON HC CA CY: ............................................................. 156

    PTIT

  • Mc lc

    6

    9.4. TP MANDELBROT ............................................................................................. 159

    9.4.1. t vn ......................................................................................................... 159

    9.4.2. CNG THC TON HC ............................................................................. 159

    9.4.3. THUT TON TH HIN TP MANDELBROT ........................................ 160

    9.5. TP JULIA.............................................................................................................. 161

    9.5.1. t vn : ........................................................................................................ 161

    9.5.2. Cng thc ton hc: .......................................................................................... 161

    9.5.3. Thut ton th hin tp Julia ............................................................................. 161

    9.6. H CC NG CONG PHOENIX .................................................................... 163

    Bi tp ............................................................................................................................. 165

    Chng 10: OpenGL .......................................................................................................... 166

    10.1. Gii thiu v OpenGL ........................................................................................... 166

    10.1.1. Khi nim ....................................................................................................... 166

    10.1.2. Ci t OpenGL trong Visual C++ ................................................................. 166

    10.2. Cc thnh phn c bn ca OpenGL ..................................................................... 166

    10.2.1. Chng trnh u tin ..................................................................................... 166

    10.2.2. V hnh trong Window ................................................................................... 167

    10.2.3. Khung nhn ..................................................................................................... 168

    10.3. V cc i tng hnh hc c bn trong OpenGL ................................................. 169

    10.3.1. V im, ng v a gic (point, line and polygon) .................................... 169

    10.4. Php bin i im nhn v bin i m hnh (Viewing and Modeling

    transformations) ........................................................................................................................ 173

    10.4.1. Php bin i im nhn ................................................................................. 173

    10.4.2. Php bin i m hnh .................................................................................... 173

    10.4.3. kt hp cc php bin i ............................................................................... 174

    10.5. Php chiu phi cnh v php chiu trc giao (Perspective and Orthographic

    Projection) ................................................................................................................................ 174

    10.5.1. Php chiu phi cnh ...................................................................................... 174

    10.5.2. Php chiu trc giao ....................................................................................... 175

    PH LC ........................................................................................................................... 177

    1. Yu cu ....................................................................................................................... 177

    2. Khi to v ng ch ho ................................................................................. 177

    3. Cc hm c bn .......................................................................................................... 178

    3.1. Bng mu ca mn hnh ho. .......................................................................... 178

    3.2. im .................................................................................................................... 179

    3.3. ng .................................................................................................................. 179

    3.4. Hnh ch nht ...................................................................................................... 179

    3.5. Hnh trn .............................................................................................................. 179

    3.6. a gic ................................................................................................................. 180

    PTIT

  • Mc lc

    7

    3.7. Vn bn ................................................................................................................ 180

    3.8. Ca s (viewport) ................................................................................................ 181

    3.9. To hnh nh chuyn ng ................................................................................... 181

    Cc code chng trnh v d cho bi tp lp trnh .......................................................... 183

    Bi 1: quay i tng ................................................................................................. 183

    Bi 2: xn ta ............................................................................................................... 190

    Bi 3: Php chiu ........................................................................................................ 191

    TI LIU THAM KHO .................................................................................................. 185

    PTIT

  • Chng 1: Tng quan v k thut ho

    7

    CHNG 1: TNG QUAN V K THUT HO

    1.1. CC KHI NIM TNG QUAN CA K THUT HO MY

    TNH (COMPUTER GRAPHICS)

    1.1.1. L ch s pht trin

    Lch s ca ha my tnh l vo thp nin 1960 c nh du bi d n SketchPad

    c pht trin ti Hc vin Cng ngh Massachusetts (MIT) bi Ivan Sutherland. Cc

    thnh tu thu c c bo co ti hi ngh Fall Joint Computer v y cng chnh l

    s kin ln u tin ngi ta c th to mi, hin th v thay i c d liu hnh nh

    trc tip trn mn hnh my tnh trong thi gian thc. H thng Sketchpad ny c dng

    thit k h thng mch in v bao gm nhng thnh phn sau:

    CRT mn hnh

    Bt sng v mt bn phm bao gm cc phm chc nng

    My tnh cha chng trnh x l cc thng tin

    Vi h thng ny, ngi s dng c th v trc tip cc s mch in ln mn

    hnh thng qua bt sng, chng trnh s phn tch v tnh ton cc thng s cn thit ca

    mch in do ngi dng v nn.

    Cng trong nm 1960 ny, William Fetter nh khoa hc ngi M. ng ang

    nghin cu xy dng m hnh bung li my bay cho hng Boeing ca M. ng da trn

    hnh nh ba chiu ca m hnh ngi phi cng trong bung li ca my bay xy dng

    nn mt m hnh ti u cho bung li my bay. Phng php ny cho php cc nh thit

    k quan st mt cch trc quan v tr ca ngi li trong 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 hnh u da trn thit k ng tia m cc CRT (Cathode ray tube).

    K thut ha c lin tc hon thin vo thp nin 1970 vi s xut hin ca

    cc chun ha lm tng cng kh nng giao tip v ti s dng ca phn mm cng

    nh cc th vin ha.

    S pht trin vt bc ca cng ngh vi in t v phn cng my tnh vo thp

    nin 1980 lm xut hin hng lot cc v mch h tr cho vic truy xut ha i cng

    vi s gim gi ng k ca my tnh c nhn lm ha ngy cng i su vo cuc sng

    thc t.

    Nhng nm 1980 c raster graphics ( ho im). Bt u chun ho v d nh:

    GKS(Graphics Kernel System): European effort (kt qu ca chu u), Becomes ISO 2D

    standard.

    Thp nin 90 pht trin c bit v phn cng, thit b hnh hc ho Silicon. Xut

    hin cc chun cng nghip: 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).

    PTIT

  • Chng 1: Tng quan v k thut ho

    8

    Ngy nay xut hin nh hin thc, cc ho cho my tnh (Graphics cards for

    PCs), game boxes v game players. Cng nghip phim nh nh vo ho my tnh

    (Computer graphics becoming routine in movie industry), Maya (th gii vt cht tri gic

    c).

    1.1.2. K thut ha vi tnh.

    ha my tnh l mt lnh vc ca khoa hc my tnh nghin cu v c s ton hc, cc

    thut ton cng nh cc k thut cho php to, hin th v iu khin hnh nh trn mn

    hnh my tnh. ha my tnh c lin quan t nhiu n mt s lnh vc nh i s, hnh

    hc gii tch, hnh hc ha hnh, quang hc,... v k thut my tnh, c bit l ch to

    phn cng (cc loi mn hnh, cc thit b xut, nhp, cc v mch ha...).

    Theo ngha rng hn, ha my tnh l phng php v cng ngh dng trong vic

    chuyn i qua li gia d liu v hnh nh trn mn hnh bng my tnh. ha my

    tnh hay k thut ha my tnh cn c hiu di dng phng php v k thut to

    hnh nh t cc m hnh ton hc m t cc i tng hay d liu ly c t cc i

    tng trong thc t.

    1.2. CC K THUT HO

    1.2.1. K thut ho im (Sample based-Graphics)

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

    mu ri rc)

    c im:C th thay i thuc tnh ca tng im nh ri rc

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

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

    rc,

    o 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 m

    chng ta mun hin th.

    Hnh 1.1 nh ho im

    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

    m phng ca s vt.

    PTIT

  • Chng 1: Tng quan v k thut ho

    9

    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

    c theo nhng phng php khc nhau thu c hnh nh c trng ca i

    tng.

    1.2.2. K thut ho vector

    Hnh 1.2 M hnh ho vector

    M hnh hnh hc (geometrical model) ca i tng

    Xc nh cc thuc tnh ca m hnh hnh hc ny,

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

    i tng

    V d v hnh nh ho Vector

    Hnh 1.3 V d v ho vector

    C th nh ngha ho vector: ho vector = geometrical model + rendering

    Cc tham

    s t trt

    T trt

    Thit b ra

    M hnh

    ha

    Muscle Model Wireframe Model Skeletal Model

    Skin Model Hair Model Render and Touch up

    PTIT

  • Chng 1: Tng quan v k thut ho

    10

    So snh gia Raster v Vector Graphics

    ho im(Raster Graphics)

    - Hnh nh v m hnh ca cc vt th c

    biu din bi tp hp 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 nh ny

    sang hnh nh khc.

    ho vector(Vector Graphics)

    - Khng thay i thuc tnh ca tng im

    trc tip

    - X l vi tng thnh phn hnh hc c s

    ca n v thc hin qu trnh t trt v hin th

    li.

    - Quan st hnh nh v m hnh ca hnh nh

    v s vt nhiu gc khc nhau bng cch

    thay i im nhn v gc nhn.

    1.2.3. Phn loi ca ho my tnh

    Phn loi theo cc lnh vc ca ho my tnh

    Phn loi theo h to

    K thut 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.

    K thut ho ba chiu: l k thut ho my tnh s dng h to ba chiu,

    i hi rt 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

    i tng. 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 cu trc, hoc theo cc tiu tr c xc nh t trc v bng cc thut ton chn lc

    c th phn tch hay tng hp nh cho thnh mt tp hp cc nh gc, cc nh gc

    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 PTIT

  • Chng 1: Tng quan v k thut ho

    11

    ny c lu trong mt th 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

    ca cc vt th da trn cc i tng v mi quan h gia chng.

    Cc h CAD/CAM (Computer Aided Design/Computer Aided Manufacture

    System): k thut ho tp hp cc cng c, cc k thut tr gip cho thit k cc chi

    tit v cc h thng khc nhau: h thng c, h thng in, h thng in t.

    ho trnh by (Presentation Graphics): gm cc cng c gip hin th cc s liu

    th nghim mt cch trc quan, da trn cc mu th hoc cc thut ton c sn.

    ho hot hnh v ngh thut: bao gm cc cng c gip cho cc ho s, cc nh

    thit k phim hot hnh chuyn nghip lm cc k xo hot hnh, v tranh... V d: phn

    mm 3D Studio, 3D Animation, 3D Studio Max.

    1.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 tin

    hc. Ngay t khi xut hin n c sc li cun mnh lit, cun ht rt nhiu ngi

    nhiu lnh vc khc nhau nh khoa hc, ngh thut, kinh doanh, qun l...Tnh hp dn

    ca n c th c minh 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

    ngi dng ng dng. Giao din WYSIWYG v WIMP ang c a s ngi dng u

    thch nh tnh thn thin, d s dng ca n.

    To cc biu trong thng mi, khoa hc, k thut

    Cc 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.

    T ng ho vn phng v ch bn in t

    Thit k vi s tr gip 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 to

    PTIT

  • Chng 1: Tng quan v k thut ho

    12

    Mt s v d ca ng dng k thut ho:

    Hnh 1.4 Cc ng dng ca k thut ho

    Hnh 1.5 H ng dng CAD - CAM

    PTIT

  • Chng 1: Tng quan v k thut ho

    13

    1.2.5. Cc chun giao din ca h ho

    Mc tiu cn bn ca cc chun cho phn mm ho l m bo tnh tng thch. Khi

    cc cng c c thit k vi hm ho chun, phn mm c th c 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 nh mt 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 vi cc thit b ngoi vi.

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

    i hnh nh.

    VRML (Virtual Reality Modeling Language): ngn ng thc ti o, mt hng pht

    trin trong cng ngh hin th c xut bi hng Silicon Graphics, sau c

    chun ha nh mt chun cng nghip.

    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.

    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 ca mt h ha nm 1993.

    DIRECTX th vin ho ca hng Microsoft, Direct X/Direct3D 1997

    1.3. PHN CNG HO (GRAPHICS HARDWARE)

    1.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 nh h 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 ng dng

    Phn mm ng dng (Application Program): phn mm ho ng dng.

    B m ( Frame buffer): c nhim v cha cc hnh nh hin th.

    B iu khin mn hnh (Video Controller): iu khin mn hnh, chuyn d liu

    dng s frame buffer thnh cc im sng trn mn hnh.

    PTIT

  • Chng 1: Tng quan v k thut ho

    14

    Hnh 1.6 Cc thnh phn cng ca h ho tng tc

    1.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 per

    inch)

    Dot size Point per inch

    8 - 20/ 100 inch 200, 600

    5/1000 inch 1500

    My v 6,15/1000 inch 1000, 2000

    1.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 dn n v

    tr xc nh trn mn hnh c ph mt lp phosphor. Ti mi v tr tng tc vi tia in t ht

    phosphor s pht ln mt chm sng nh. Nhng chm sng s m dn rt nhanh nn cn c cch

    no n duy tr nh trn mn hnh. Mt trong cc cch l: lp i lp li nhiu ln vic v li nh

    tht nhanh bng cch hng cc tia in t tr li 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 c th c v theo chiu ngang v

    chiu dc (c xem nh tng s im theo mi hng) ca mn hnh.

    Kch thc vt l ca mn hnh ho c 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 dc v cc im ngang cn pht sinh cc on thng c di n v theo c hai

    hng trn mn hnh. Mn hnh c t s phng khc mt, th hnh vung hin th trn

    thnh hnh ch nht cn hnh trn thnh hnh ellipse.

    PTIT

  • Chng 1: Tng quan v k thut ho

    15

    Hnh 1.7 Cng ngh mn hnh CRT

    Mn hnh dng im (Raster Display): thng gp nht trong s cc dng mn hnh

    s dng CRT trn cng ngh truyn hnh. Mi im trn mn hnh c gi l pixel. Cc

    thng tin v nh hin th trn mn hnh c lu tr trong mt vng b nh gi l vng

    m lm ti (Refresh buffer) hay l vng m khung (Frame Buffer). Vng lu tr tp

    cc gi tr cng sng ca ton 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.

    to ra hnh nh en trng, n gin ch cn lu thng tin ca mi Pixel l mt bt

    (0,1) (xem hnh 1.8). Trong trng hp nh nhiu mu th cn nhiu bt hn, nu thng tin

    mi pixel c lu bng b bt th ta c th c 2b gi tr mu phn bit cho pixel .

    SONY Trinitron

    CRT

    NEC Hybrid

    Mask

    Hitachi EDP Standard Dot-trio

    PTIT

  • Chng 1: Tng quan v k thut ho

    16

    V d m hnh ho im ngi nh v ngi sao.

    Hnh 1.8 Song nh gia vng m khung v mn hnh

    Trong cc mn hnh mu, ngi ta nh ngha tp cc mu lm vic trong mt bng

    tra (LookUp Table - 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 ch nh s th t

    (index) tng ng ca mu trong LUT, s phn t trong bng LUT chnh l s mu c

    th c hin th cng mt lc trn 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 khung/giy.

    i khi tc lm ti cn c biu din bng n v Hertz (Hz - s chu k trn/giy),

    trong mt chu k tng ng vi mt khung (frame). Vy tc lm ti 60

    khung/giy n gin l 60 Hz. Khi t n cui mi dng qut, tia in t quay tr li

    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 tr li gc bn tri ca mn hnh

    chun b bt u frame k tip.

    Hnh 1.9 Qut mnh v qut dng ca mn hnh CRT

    1.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 cha

    c t trng (cha c dng in) cun dy th nh sng truyn thng, khi c t trng

    th nh sng truyn i chiu.

    Interface to

    host computer

    Display

    processo

    r

    (Display

    commands)

    (interaction data)

    Keyboard

    Data input 00000000000000

    00000000000100

    0000

    00000000000000

    00000000000100

    0000

    00000000000000

    00000000011111

    0000

    00000000011000

    00000111111111

    1111

    00000000111100

    00000000011111

    0000

    00000011111111

    00000000000100

    0000

    00001111111111

    11000000000100

    0000

    00111111111111

    11110000000000

    0000

    00011111111111

    11100000000000

    0000

    00011111111111

    11100000000000

    0000

    00011111111111

    11100000000000

    0000

    00000000000000

    00000000000000

    0000

    Bitmap refresh buffer

    (the 1s are accentuated

    for contrast)

    CRT

    PTIT

  • Chng 1: Tng quan v k thut ho

    17

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

    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 of

    CRT, typ. 1/5 of CRT)

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

    Mn hnh phng tuyt i nn khng mo ti

    cc 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 dng

    v 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 thch kh nng sng to v tng ng k hiu sut lm vic.

    PTIT

  • Chng 1: Tng quan v k thut ho

    18

    ho my tnh ngy nay c c ng dng rt rng ri trong nhiu lnh vc

    khoa hc, k thut, ngh thut, kinh doanh, qun lCc ng dng ho rt a dng,

    phong ph v pht trin 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 gi cng gm hai phn chnh l phn cng v phn

    mm. Phn cng bao gm cc thit b hin th (thit b xut) v cc thit b nhp. Tiu

    biu nht l mn hnh, c hai loi mn hnh 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 m khung, phn gii, t s phng.... ca mn hnh loi ny?

    2. ngha v hot ng ca bng tra LUT?

    3. Tnh Video Ram ca cc mn hnh ln lt c phn gii l 640x480,

    1024x768, 1280x1024 m c mi pixel c m t ln lt l 8bt, 12 bit, 24

    bit.

    4. Nu chng ta dng cc gi tr 12bit cho mi pixel trong mt bng tham chiu

    lookup table, c bao nhiu hng mc m lookup table c c?

    5. Ti sao phi chun ho cc phn mm ho? Lit k cc chun ha .

    PTIT

  • Chng 2: Cc gii thut sinh thc th c s

    19

    CHNG 2: CC GII THUT SINH THC TH C S

    2.1. CC H THNG TO TRONG HO

    Trong lnh vc k thut ha, chng ta phi hiu c rng thc cht ca ha l lm

    th no c th m t v bin i c cc i tng trong th gii thc trn my tnh.

    Bi v, cc i tng trong th gii thc c m t bng ta thc. Trong khi , h

    ta thit b li s dng h ta nguyn hin th cc hnh nh. y chnh l vn

    c bn cn gii quyt. Ngoi ra, cn c mt kh khn khc na l vi cc thit b khc

    nhau th c cc nh ngha khc nhau. Do , cn c mt phng php chuyn i tng

    ng gia cc h ta v i tng phi c nh ngha bi cc thnh phn n gin

    nh th no c th m t gn ng vi hnh nh thc bn ngoi.

    Hai m hnh c bn ca ng dng ha l da trn mu s ha v da trn c

    trng hnh hc. Trong ng dng ha da trn mu s ha th cc i tng ha

    c to ra bi li cc pixel ri rc. Cc pixel ny c th uc to ra bng cc chng

    trnh v, my qut, ... Cc pixel ny m t ta xc nh v tr v gi tr mu. Thun li

    ca ng dng ny l d dng thay i nh bng cch thay i mu sc hay v tr ca cc

    pixel, hoc di chuyn vng nh t ni ny sang ni khc. Tuy nhin, iu bt li l khng

    th xem xt i tng t cc gc nhn khc nhau. ng dng ha da trn c trng

    hnh hc bao gm cc i tng ha c s nh on thng, a gic,.... Chng c lu

    tr bng cc m hnh v cc thuc tnh. V d : on thng c m hnh bng hai im

    u v cui, c thuc tnh nh mu sc, dy. Ngi s dng khng thao tc trc tip

    trn cc pixel m thao tc trn cc thnh phn hnh hc ca i tng.

    2.1.1. H to thc (WCS World Coordinate System)

    Mt trong nhng h ta thc thng c dng m t cc i tng trong th gii

    thc l h ta Descartes. Vi h ta ny, mi im P c biu din bng mt cp

    ta P(xp,yp,zp) vi xp, yp,zp R

    Hnh 2.1 H ta thc.

    Ox,Oy, Oz l trc to

    xp ,yp,zp : to ca P

    2.1.2. H to thit b (DCS Device Coordinate System)

    H ta thit b (device coordinates) c dng cho mt thit b xut c th no , v

    d nh my in, mn hnh,.. Trong h ta thit b th cc im cng c m t bi cp

    PTIT

  • Chng 2: Cc gii thut sinh thc th c s

    20

    ta (x,y). Tuy nhin, khc vi h ta thc l x, y N. iu ny c ngha l cc

    im trong h ta thc c nh ngha lin tc, cn cc im trong h ta thit b

    l ri rc. Ngoi ra, cc ta x, y ca h ta thit b ch biu din c trong mt gii

    hn no ca N. V d : phn gii ca mn hnh trong ch ha l 640x480. Khi

    , x(0,639) v y(0,479) (xem hnh 2.2).

    Hnh 2.2 H ta trn mn hnh

    2.1.3. to thit b chun (NDCS Normalized Device Coordinate System)

    Do cch nh ngha cc h ta thit b khc nhau nn mt hnh nh hin th c trn

    thit b ny l chnh xc th cha chc hin th chnh xc trn thit b khc. Ngi ta xy

    dng mt h ta thit b chun i din chung cho tt c cc thit b c th m t cc

    hnh nh m khng ph thuc vo bt k thit b no.

    Trong h ta chun, cc ta x, y s c gn cc gi tr trong on t [0,1].

    Nh vy, vng khng gian ca h ta chun chnh l hnh vung n v c gc tri

    di (0, 0) v gc phi trn l (1, 1).

    Qu trnh m t cc i tng thc nh sau (xem hnh 2.3):

    Hnh 2.3 H ta trn mn hnh.

    2.2. IM V ON THNG

    2.2.1. im

    Trong h to hai chiu (mt phng) th im c biu din P(x,y), ngoi ra n cn c tnh

    cht mu sc. V d v mt im ta c hm putpixel(x,y,color).

    2.2.2. 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 2 im P (x1,y1) v Q(x2,y2) nh sau:

    PTIT

  • Chng 2: Cc gii thut sinh thc th c s

    21

    (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 + b

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

    b = y1- kx1 on chn trn trc y

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

    Hnh 2.4 V on thng PQ

    Biu din khng tng minh: ax+by+c=0

    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 ax + by + c = 0

    Trong a = (y2-y1), b = -(x2-x1 ) v c = x2y1 - x1y2

    Biu din thng qua tham s:

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

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

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

    2.3. CC GII THUT XY DNG THC TH C S

    2.3.1. Gii thut v on 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

  • Chng 2: Cc gii thut sinh thc th c s

    22

    2.3.2. Gii thut Bresenham

    1960 Bresenham thuc IBM tm ra cc im gn vi ng thng da trn phn gii

    hu hn. Gii thut ny loi b c cc php ton chia v php ton lm trn nh ta

    thy trong gii thut trn.

    Xt on thng vi 0 < k < 1

    Hnh 2.5 M t gii thut Bresenham (0 yi+1 = yi +1

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

    C k=y/x v t Pi = xD = x (d1 - d2)

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

    Ta 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 - 2x

    Tnh gi tr u: 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

    PTIT

  • Chng 2: Cc gii thut sinh thc th c s

    23

    Hnh 2.6 S khi thut ton

    Bresenham cho ng thng

    void Bre_line(int x1, int y1,

    int x2, int y2, int c){

    int x, y, dx, dy,p;

    y = y1;

    dx = x2 - x1;

    dy = y2 - y1;

    p = 2*dy - dx;

    for (x=x1; x

  • Chng 2: Cc gii thut sinh thc th c s

    24

    Hnh 2.7 M t gii thut Midpoint

    So snh hay kim tra M s c thay bng vic xt gi tr d.

    d > 0 im B c chn khi yi+1 = yi

    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-y1

    Biu din tng minh:

    y= (dy/dx)x +B hay f(x,y)=0= xdy - ydx +Bdx (2)

    So snh (1) v (2) ta c a=dy, b=-dx v 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

    A

    B

    d0

    A

    PTIT

  • Chng 2: Cc gii thut sinh thc th c s

    25

    Hnh 2.8 S khi gii thut Midpiont

    cho on thng

    /* Thuat toan Midpoint de ve

    doan thang (0

  • Chng 2: Cc gii thut sinh thc th c s

    26

    Hnh 2.10 M t gii thut Bresenham

    Gi s bt u xi vy xi+1 = xi +1

    y2 = r2 - (xi +1)2

    d1 = yi2 - y2 = yi

    2 - r2 - (xi +1)2

    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 +1

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

    2 - 2yi 1 - 2r2

    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 + 2

    pi+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:

    PTIT

  • Chng 2: Cc gii thut sinh thc th c s

    27

    Hnh 2.11 S khi gii thut Bresemham

    cho ng 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

  • Chng 2: Cc gii thut sinh thc th c s

    28

    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.3.5. Gii thut sinh ng trn Midpoint

    Phng trnh ng trn khng tng minh:

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

    Hnh 2.12 M t gii thut Midpoint

    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

    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)

    PTIT

  • Chng 2: Cc gii thut sinh thc th c s

    29

    = (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)= 12 + (r-1/2)2 - r2

    d1 = 5/4 -r

    Thut ton nh sau:

    Hnh 2.13 S khi gii thut Midpiont v

    ng 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

  • Chng 2: Cc gii thut sinh thc th c s

    30

    d += 2 * x + 3;

    else {

    d += 2 * (x-y) + 5;

    y--;

    }

    x++; }}

    2.3.6. Gii thut sinh ng ellipse

    Tnh i xng c thc hin trn 4 cch

    Hnh 2.14 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 y

    Gi 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

  • Chng 2: Cc gii thut sinh thc th c s

    31

    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 +3b

    2 +a2(-2yi +2)

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

    2(-2yi +2)

    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 nhp 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) = b2(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) = b2(xk+1/2)

    2 + a2(yk-1)2 -a2b2

    PTIT

  • Chng 2: Cc gii thut sinh thc th c s

    32

    Cu hi: lc ly i xng 4 cch tm 1 Ellipse hon chnh t cc to pixel

    c to ra vi 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);

    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; //2b2

    if (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);

    }

    }

    PTIT

  • Chng 2: Cc gii thut sinh thc th c s

    33

    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.3.7. Gii thut sinh k t

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

    t c lu tr trong b nh ROM, di dng bitmap hay cc ma trn nh. Phn cng s

    a k t ln mn hnh ti v tr xc nh, tnh ton cun trang v xung dng.

    Trong ho:

    Vector: nh ngha cc k t theo nhng ng cong mm bao ngoi ca chng,

    tn km v mt tnh ton.

    Hnh 2.15 K t vector

    u nhc im:

    - 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

    thc c nh)

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

    nht nh.

    Hnh 2.16 K t bitmap

    - n gin trong vic sinh k t

    (copypixel)

    - Lu tr ln

    - Cc php bin i(I,B,U, scale) i hi

    lu tr thm

    - Kch thc khng i

    bitmap: s dng hm copypixel (copy im nh) c lu tr trong b nh c nh

    - Fontcache, a vo b nh m 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 n

    xo, yo //im gc trn b m 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));

    }

    PTIT

  • Chng 2: Cc gii thut sinh thc th c s

    34

    K t fontcache bitmap n gin ca SRGP lu tr cc k t theo chui lin tip

    nhau trong b nh. Nhng rng cc k t khc nhau, truy nhp cc fontcache thng

    qua bn ghi v cu trc cho tng k t.

    Cu trc font ch

    typedef 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

    Xy dng theo phng php nh ngha cc k t bi ng cong mm bao ngoi

    ca chng d dng thay i kch thc ca k t cng nh ni suy ra cc dng ca k t.

    Hon ton c lp vi thit b.

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

    dng l bitmap tng ng vi chng.

    2.3.8. Gii thut sinh a gic (Polygon)

    a. Thut gii v ng 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.17 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 nm trn 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)

    Tam gic li lm t ct min

    PTIT

  • Chng 2: Cc gii thut sinh thc th c s

    35

    { if (n

  • Chng 2: Cc gii thut sinh thc th c s

    36

    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

    ymax n ymin ca vng cn c t mu.

    Vi mi gi tr y = yi ng 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

  • Chng 2: Cc gii thut sinh thc th c s

    37

    Nu s giao im tm c gia cc cnh a gic v dng qut l l (iu ny

    ch xy ra khi dng qut s i qua cc nh ca a gic) khi ta s tnh s

    im l 2 th c th t khng chnh xc. Ngoi ra, vic tm giao im ca

    dng qut vi cc cnh nm ngang l trng hp t bit...

    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

    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 c th ct ng vi dng qut hin hnh v tp cc im giao tng ng. N c mt s

    c 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 s c cp nht lin

    tc trong qu trnh thc hin thut ton. u tin ta c danh dch cha ton b cc cnh

    ca a gic gi l ET (Edge Table) c sp xp theo th t tng dn ca ymin, ri sau mi

    ln dng qut thay i s di chuyn cc cnh trong ET tho iu 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 ET sang AET s l k>=ymin; v iu kin loi mt cnh ra khi AET l

    y

  • Chng 2: Cc gii thut sinh thc th c s

    38

    Hnh 2.20 Qui tc tnh: mt giao im (A) v hai giao im (B)

    Hnh 2.21 lu thut ton scan - line

    Gii thut t vng kn theo mu (Pattern filling)

    object (nh mu)

    A[m,n]

    Vn : xc nh im mu v nhiu im tng ng vi chng trn mn hnh.

    Phng php 1:

    Tm im neo u tri nht hng u tin ca a gic.

    Pi Pi

    Pi

    Pi

    Pi-1

    Pi-1

    Pi-1

    Pi-1 Pi+1

    Pi+1

    Pi+1

    Pi+1

    A B

    PTIT

  • Chng 2: Cc gii thut sinh thc th c s

    39

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

    mt a gic 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 cc ng bin cho cc vng t, vy nu ngoi cc thc th cc mu t khng c

    php th hin.

    Hnh 2.22 Phng php ly im neo

    Tm tt chng:

    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 to th gii thc v dy cc pixel tng ng gn vi chng nht trn to

    thit b. Qu trnh ny cn c gi l qu trnh chuyn i bng dng qut. Yu cu quan

    trng nht i vi qu trnh ny ngoi vic phi cho kt qu xp x tt nht cn phi cho

    tc ti u.

    Ba cch tip cn v on thng gm thut ton DDA, thut ton Bresenham, thut

    ton Midpiont u tp trung vo vic a ra cch chn mt trong hai im nguyn k tip

    khi bit im nguyn bc trc. Thut ton DDA n gin ch dng thao tc lm

    trn nn phi dng cc php ton trn s thc, trong khi thut ton Bresenham v

    Midpiont a ra cch chn phc tp hn nhng cho kt qu tt hn. Tng t dng hai

    gii thut Bresenham v Midpiont v ng trn v ellpise v mt s ng 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. Ch nh cc v tr mnh no s c chn bi thut ton Bresenham lc chuyn

    qut mt ng 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 s gc).

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

    h s gc).

    x

    y

    neo

    neo

    x

    y

    PTIT

  • Chng 2: Cc gii thut sinh thc th c s

    40

    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 rx v ry ).

    6. T hm v ng 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.Vit thut ton t mu scan-line.

    PTIT

  • Chng 3: Cc php bin i ho

    41

    CHNG 3: CC PHP BIN I HO

    3.1. CC PHP BIN I HNH HC HAI CHIU

    3.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

    thnh tp 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

    mi m khi ni chng vi nhau to thnh on thng mi. Cc im nm trn on thng

    s c kt qu l im nm trn on thng mi vi cng php bin i thng qua php ni

    suy.

    3.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 2

    chiu biu din thng qua to , vit di dng ma trn gi l vect v tr.

    C 2 dng biu din:

    Mt hng v 2 ct: yx

    Hai hng v 1 ct:

    y

    x

    Trong gio trnh chng ta chn biu din im l ma trn hng (mt hng v 2 ct).

    Tp cc im c lu tr trong my tnh s c 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 qua cc php bin i chng, thc cht cc php bin i ho ny c

    m t di dng cc ma trn.

    3.1.2.1. Php bin i v tr

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

    [P]. 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 s ng vi ton b i tng.

    dc

    baT

    y

    x

    P P

    PTIT

  • Chng 3: Cc php bin i ho

    42

    Hay ta c: x = ax + cy

    y = bx + dy

    Xt 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

  • Chng 3: Cc php bin i ho

    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

    Php quay

    C >0 ngc chiu kim ng h

    P P

    Sx=-1 P

    P

    Sy=-1

    P

    P

    Sx=Sy=-1

    ''10

    1** yxybxx

    byxTX

    P

    P

    y=bx+y

    bx

    P P

    cy x=x+cy

    PTIT

  • Chng 3: Cc php bin i ho

    44

    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 + ycos

    Ta 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

    3.1.2.2. Php bin i tng hp

    Phng php bin i s dng php nhn ma trn vi to im thng qua cc vect v

    tr tht s hiu qu v em li cng c mnh v ho cho ngi s dng. Nhng thc t

    cc thao tc thng cn khng ch mt m nhiu php bin i khc nhau. Ta c php

    hon v khi nhn ma trn l khng thc hin nhng kh nng t hp cc php nhn li cho

    php to ra mt ma trn bin i duy nht. Lm gim bt ng k khi lng tnh ton

    trong qu trnh bin i, lm tng tc cc 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 :

    10

    012T

    Ta c:

    PTIT

  • Chng 3: Cc php bin i ho

    45

    xyyxTXX

    01

    10*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 ma trn tng hp t cc php bin i .

    3.2. TA NG NHT V CC PHP BIN I

    3.2.1. To ng 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 tin a ra ma trn bin i tng hp l khng th.

    Th no l phng php biu din to ng nht ? l phng php biu din m

    rng thng qua to ng nht ca cc vect v tr khng ng nht [x y] l ng dng

    ca php bin i hnh hc m to im c m t di ma trn [x* y* h] vi

    x=x*/h, y=y*/h c h l mt s thc tu . Vy mt vect v tr [xy] bt k trn mt phng

    xoy bng tp v s cc im ng nht [hx hyh]. V d: [2 5] s biu din bng [4102],

    [6153]..... n gin nht l [251].

    Vy to ng nht ca vect v 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

    x=ax + cy +dx

    PTIT

  • Chng 3: Cc php bin i ho

    46

    y=bx + dy + dy

    [X]= [x y1]

    Trong dx, dy l khong tnh tin theo trc x v y.

    3.2.2. Php bin i vi to ng nht

    Ma trn bin i ng nht

    Php tnh tin

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

    1

    010

    001

    nm

    T

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

    Php bin i tng hp ca hai php tnh tin theo khong [m1 n1] v [m2n2] bng

    php bin 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 i duy nht c t l l tch hai php bin i trn Sx1*Sx2, Sy1*Sy2.

    Ci t c/c++ cho php t l on thng to t (x1,y1) n (x2,y2):

    x11=int(x1*1.1); x22=int(x2*0.9);

    y11=int(y1*1.1); y22=int(y2*0.9);

    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

    PTIT

  • Chng 3: Cc php bin i ho

    47

    Hnh 3.6 Php quay

    Ch : Php bin i tng hp ca hai php quay 1 v 2 l

    Ci t c/c++ cho php quay tam gic quanh gc to :

    void quay(int &x,int &y,float

    goc){

    goc=goc*3.14/180;

    int t=x;

    x=x*cos(goc)-y*sin(goc);

    y=t*sin(goc)+y*cos(goc); }

    tamgiac(x1,y1,x2,y2,x3,y3,4);

    quay(x1,y1,goc);

    quay(x2,y2,goc);

    quay(x3,y3,goc);

    tamgiac(x1,y1,x2,y2,x3,y3,mau);

    3.2.3. Ci t c/c++ cho php quay tam gic quanh 1 im (xq,yq):

    #define RADS 0.017453293

    void Quay(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);

    tamgiac(x11,y11,x22,y22,x33,y33,12);

    }

    1)cossin()sincos(

    100

    0cossin

    0sincos

    ]1[]1''[

    yxyx

    yxyx

    y

    ( x, y )

    x

    ( x, y )

    PTIT

  • Chng 3: Cc php bin i ho

    48

    3.3. CC PHP BIN I HNH HC BA CHIU

    Cc php bin i chuyn v - translation, t l-scaling v quay-rotation s dng trong

    khng gian 2D u c th m rng trong khng gian 3D.

    3.3.1.Biu din im trong khng gian 3 chiu

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

    Vit gn hn:[x y z 1]

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

    Hay

    1

    0

    0

    0

    dzdydx

    hig

    fed

    cba

    T

    3.3.2. Php tnh tin

    y l php bin i n gin nht, m rng 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

    3.3.3. Php t l Tng t trong 2D ta c php t l trong 3D l :

    1000

    0Sz00

    000

    000

    Sy

    Sx

    Ts

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

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

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

    Hnh 3.8 Php t l trn 3D

    snml

    rjig

    qfed

    pcba

    ][T

    1

    0100

    0010

    0001

    )],,([

    dzdydx

    dzdydxT

    1000

    000

    000

    000

    ]1[]1'''[Sz

    Sy

    Sx

    zyxzyx

    PTIT

  • Chng 3: Cc php bin i ho

    49

    3.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.3.5. Php ly i xng

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

    1000

    0100

    0010

    0001

    Mox

    1000

    0100

    0010

    0001

    Mxoy

    1000

    0100

    0010

    0001

    Mo

    3.3.6. Php quay 3 chiu 3.3.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:

    1000

    01

    01

    01

    ]1[]1'''[ig

    fd

    cb

    zyxzyx

    ]1[ zfycxizybxgzydx

    PTIT

  • Chng 3: Cc php bin i ho

    50

    Hnh 3.11 Quay quanh trc oz

    zz

    yxy

    yxx

    '

    '

    '

    cossin

    sincos

    Quay quanh trc ox:

    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 php nhn ma trn bin i khng

    c kh nng hon v cc ma trn.

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

    u tin chuyn dch i tng cho n khi to a phng ca i tng

    trng vi trc 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+]

    1000

    0100

    00cossin

    00sincos

    ][

    Tz

    1000

    0cossin0

    0sincos0

    0001

    ][

    Tx

    1000

    0cos0sin

    0010

    0sin0cos

    ][

    TyPTIT

  • Chng 3: Cc php bin i ho

    51

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

    x,y v gc quay l .

    Gii:

    10)sin)cos1(sin)cos1(

    0100

    00cossin

    00sincos

    10

    0100

    0010

    0001

    .

    10)cossin()sincos(

    0000

    00cossin

    00sincos

    10

    0100

    0010

    0001

    .

    1000

    0100

    00cossin

    00sincos

    .

    10

    0100

    0010

    0001

    ..//

    xyyx

    yxyxyx

    yxyx

    TTTT ttttz

    3.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 trc

    bt k i qua tm

    Ta thc hin cc bc nh sau:

    Quay V quanh trc y mt gc (-) sao cho

    nm trn mt phng (y, z) c V1

    Quay V1 quanh trc x mt gc sao cho

    trng vi trc z c V2

    PTIT

  • Chng 3: Cc php bin i ho

    52

    Bc 1:

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

    Ta tnh ?

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

    22

    sinca

    a

    22

    cosca

    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

    c x

    z

    y

    V V1

    a

    a

    b

    c x

    z

    V2

    PTIT

  • Chng 3: Cc php bin i ho

    53

    1000

    00

    00

    0001

    1000

    0cossin0

    0sincos0

    0001

    222

    22

    222

    222222

    22

    cba

    ca

    cba

    b

    cba

    b

    cba

    ca

    T x

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

    Nu a ngc li ta c:

    yxxyv TTTTT .. 11

    Cho trc quay L (vect V = 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,, 3.3.7. Ci t bng c/c++ nh sau:

    i 3D sang 2D

    #define RADS 0.017453293

    struct point{

    int x,y,z;

    }

    point Diem3d(int &x, int &y, int &z) {

    point p;

    p.x = int(getmaxx()/2+ y - x*cos(RADS*45));

    p.y = int(getmaxy()/2 - z + x*cos(RADS*45));

    return p;

    }

    Quay quanh cc trc to

    point quay(int x,int y,int z,float goc,int truc){

    point p;

    if (truc==1){ //Quay quanh OX

    p.y=y*cos(RADS*goc)-z*sin(RADS*goc);

    p.z=y*sin(RADS*goc)+z*cos(RADS*goc);

    p.x=x;

    }

    if (truc==2){ //Quay quanh OY

    p.x=x*cos(RADS*goc)+z*sin(RADS*goc);

    p.z=-x*sin(RADS*goc)+z*cos(RADS*goc);

    p.y=y;

    PTIT

  • Chng 3: Cc php bin i ho

    54

    }

    if (truc==3){

    p.x=x*cos(RADS*goc)-y*sin(RADS*goc);

    p.y=x*sin(RADS*goc)+y*cos(RADS*goc);

    p.z=z;

    }

    return p;

    }

    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 s c thay i

    v hng, kch thc v hnh dng. Cc php bin i hnh hc c s bao 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 xng v 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 to ng nht, to

    ca mt im c m t bi mt vector dng bao gm ba gi tr, hai gi tr u tng

    ng vi to Descartes ca im , v gi tr th ba l 1. Vi cch biu din ny, ma

    trn ca php bin i c c t s kt hp ca cc php bin i c s s bng tch ca

    cc ma trn ca cc php bin i thnh phn.

    Php bin i hnh hc 3D l s m rng ca php bin i 2D. Tng t n cng

    c cc php: tnh tin, t l, bin dng v quay. Phc tp nht l php quay, nn chng ta

    kho st ln lt t n gin n phc tp: quay i tng quanh cc trc to , quanh 1

    trc song song vi trc 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.

    Lu php tnh tin v quay c chung thuc tnh l: sau khi bin i hnh dng v

    kch thc ca i tng khng thay i m chng ch b thay i v tr v nh hng

    trong khng gian.

    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 gi im D(3,1)?

    3.

    PTIT

  • Chng 3: Cc php bin i ho

    55

    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 to nh l A(2,2), B(3,1) v C(4,3). Xc nh ma trn bin

    i affine 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 x i xng gng a gic m nh ca n: A(-1,0), B(0,-2),

    C(1,0) v D(0,2) xung quanh ng G trong cc trng hp sau:

    i. x=2

    ii. y=3

    iii. y=2x+3

    6. Cho hnh chp ABCD c cc to A(0,0,0), B(1,0,0), C(0,1,0) v D(0,0,1). Quay

    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

    mt phng cho (c vector php tuyn M, trn c mt im P).

    b. p dng tm ma trn cho php i xng gng vi mt phng i qua gc

    to v 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 2D

    a. Dch chuyn (dng cc phm dch chuyn)

    x

    y P

    P

    G

    0

    g

    x

    z

    y

    M

    Q

    Q

    PTIT

  • Chng 3: Cc php bin i ho

    56

    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 3D

    a. Dch chuyn

    b. Phng ln, thu nh

    c. Quay mt gc

    PTIT

  • Chng 4: Cc gii thut ho c s

    57

    CHNG 4: CC GII THUT HO C S

    4.1. M HNH CHUYN I GIA BA H THNG TO

    4.1.1. M hnh chuyn i

    H ta Descartes l d thch ng cho cc chng trnh ng dng miu t cc hnh

    nh (picture) trn h ta th gii thc (World Coordinate System). Cc hnh nh c

    nh ngha trn h ta th gii thc ny sau c h ha v ln cc h ta

    thit b (Device Coordinate). in hnh, mt vng ha cho php ngi s dng xc

    nh vng no ca hnh nh s c hin th v bn mun t n ni no trn h ta

    thit b. Mt vng n l hoc vi vng ca hnh nh c th c chn. Nhng vng ny

    c th c t nhng v tr tch bit, hoc mt vng c th c chn vo mt vng

    ln hn. Qu trnh bin i ny lin quan n nhng thao tc nh tnh tin, bin i t l

    vng c chn v xa b nhng phn bn ngoi vng c chn.

    Hnh 4.1 WCS

    World Coordinate System

    Hnh 4.2 NDCS Normalized

    Device Coordinate System

    Hnh 4.3 DCS

    Device Coordinate System

    Qui trnh chuyn i cc i tng trong WCS sang NDCS c gi l

    php nh x ca s sang khung nhn 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 gi l php bin i trm lm vic (Workstation Transformation)

    4.1.2. Php nh x t ca s vo khung nhn

    Hnh 4.4 i tng trong ca s Hnh 4.5 i tng ti khung nhn

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

    Xwmax, Ywmin, Ywmax

    PTIT

  • Chng 4: Cc gii thut ho c s

    58

    Mt khung nhn (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

    khung nhn 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:

    maxmin

    minmax

    minmax )()(

    )(vww

    ww

    vvv xxx

    xx

    xxx

    maxmin

    minmax

    minmax )()(

    )(vww

    ww

    vvv yyy

    yy

    yyy

    Ta c tm gi tr trn xc nh ca s v khung nhn u l hng s. Vy chng

    ta hon ton 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:

    1

    010

    001

    ww

    tt

    yx

    T

    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 khung nhn:

    PTIT

  • Chng 4: Cc gii thut ho c s

    59

    1..

    00

    00

    minmax

    minmaxminmin

    minmax

    minmaxminmin

    minmax

    minmax

    minmax

    minmax

    ww

    vvwv

    ww

    vvwv

    ww

    vv

    ww

    vv

    yy

    yyyy

    xx

    xxxx

    yy

    yy

    xx

    xx

    T

    4.2. CC GII THUT XN TI (CLIPPING)

    4.2.1. Khi nim

    Xn ta l tin trnh xc nh cc im ca mt i tng nm trong hay ngoi ca s hin

    th. 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 nm ngoi ca s hin th.

    4.2.2. Clipping im

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

    Xmin

  • Chng 4: Cc gii thut ho c s

    60

    Hnh 4.6 Mt phng m trong cc trng hp clipping on thng

    M vng c xc nh theo 9 vng ca mt phng m cc im cui nm vo .

    Mt bt c ci t true (1) hoc false (0).

    Bt 1: im cui bn trn ca s = sign(y-ymax)

    Bt 2: im cui bn di ca s = sign(ymin-y)

    Bt 3: im cui bn phi ca s = sign(x-xmax)

    Bt 4: im cui bn tri ca s = sign(xmin-x)

    Qui c sign(a) = 1 nu a dng

    = 0 nu a m

    Bc 2 :Qu trnh kim tra v tr ca on thng so vi ca s. Tt c im u v im

    cui ca on thng c m.

    Gii thut nh sau :

    Bc 1 :Nu m ca P1 hoc P2 u = 0000 th ton b on thng thuc phn hin th.

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

    Bc 2 : 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

    Bc 3: Xt giao im:

    Hnh 4