Đăng ký Đăng nhập
Trang chủ đồ án tốt nghiệp " Cơ sở toán học trong đồ hoạ máy tính"...

Tài liệu đồ án tốt nghiệp " Cơ sở toán học trong đồ hoạ máy tính"

.PDF
117
720
102

Mô tả:

Chuyên ngành: / Kỹ thuật - Công nghệ / Công nghệ thông tin / Tin học chuyên ngành Sơ lược: Lời nói đầu Chương 1. Tổng quan về đồ họa máy tính Chương 2. Sơ sở toán học của các hệ trục tọa độ & những phương thức hiện thực trong đồ họa máy tính Chương 3. Cơ sở toán học của các đối tượng đồ họa & việc hiện thực trong môi trường windows Chương 4. Các giải thuật tô màu Chương 5. Hệ patterns Chương 6. Ngôn ngữ Visual C++
Luaän AÙn Toát Nghieäp Phaàn thuyeát minh LÔØI CAÛM ÔN Chuùng em xin chaân thaønh caûm ôn thaày giaùo NGUYEÃN TAÁN THIEÄN cuøng taäp theå caùc thaày coâ giaùo khoa Coâng Ngheä Thoâng Tin, tröôøng Ñaïi Hoïc Kyõ Thuaät ñaõ taän tình giuùp ñôõ chuùng em hoaøn thaønh ñoà aùn toát nghieäp naøy. Sinh vieân thöïc hieän Bieän Coâng Minh - Nguyeãn Xuaân Sôn Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn Trang 1 Luaän AÙn Toát Nghieäp Phaàn thuyeát minh LÔØI NOÙI ÑAÀU N gaøy nay, song song vôùi söï phaùt trieån cuûa coâng ngheä thoâng tin thì laõnh vöïc ñoà hoïa maùy tính - moät trong nhöõng laõnh vöïc lyù thuù cuûa tin hoïc - cuõng ngaøy moät phaùt trieån khoâng ngöøng. Nhö chuùng ta ñaõ bieát, hình aûnh coù moät yù nghóa raát lôùn trong vieäc thoâng tin, noù giuùp chuùng ta caûm nhaän thoâng tin nhanh hôn, deã daøng hôn, ñaëc bieät laø trong nhöõng tröôøng hôïp baát ñoàng veà ngoân ngöõ. Hình aûnh laøm cho khaû naêng giao tieáp giöõa con ngöôøi vaø maùy tính trôû neân sinh ñoäng vaø lyù thuù, töø ñoù noù giuùp cho maùy tính coù theå môû roäng öùng duïng cuûa mình trong raát nhieåu laõnh vöïc nhö chuùng ta thaáy hieän nay. Ñoà Hoïa Trong Maùy Tính Ñoà hoïa maùy tính - moät ngaønh khoa hoïc tin hoïc chuyeân nghieân cöùu veà caùc phöông phaùp vaø caùc kyõ thuaät nhaèm moâ taû döõ lieäu thoâng qua caùc hình aûnh - vì vaäy cuõng ngaøy caøng moät thaâm nhaäp nhieàu vaøo caùc laõnh vöïc nghieân cöùu vaø saûn xuaát trong xaõ hoäi khi maø maùy tính ñaõ trôû thaønh ngöôøi coäng söï ñaéc löïc cuûa caùc nhaø nghieân cöùu cuõng nhö caùc nhaø saûn xuaát. Ñoà hoïa maùy tính ñaõ giuùp cho caùc öùng duïng deã daøng thaâm nhaäp vaø thuyeát phuïc ñöôïc ngöôøi söû duïng nhôø nhöõng giao dieän thaân thieän, deã duøng cuûa mình. Ñoà hoïa maùy tính thöïc söï giuùp cho caùc nhaø khoa hoïc vaø caùc nhaø saûn xuaát kích thích khaû naêng saùng taïo vaø naâng cao hieäu suaát laøm vieäc. Ngaøy nay, ñoà hoïa maùy tính ñöôïc söû duïng nhieàu trong caùc laõnh vöïc khaùc nhau nhö coâng nghieäp, thöông maïi, quaûn lyù, giaùo duïc, giaûi trí,…Ñaëc bieät vôùi nhöõng öu ñieåm cuûa mình, ñoà hoïa maùy tính cuõng ñaõ thaâm nhaäp raát saâu vaøo caùc ngaønh thieát keá vaø trang trí myõ thuaät. Vieäc thieát keá vaø trang trí myõ thuaät ngaøy nay cuõng trôû neân deã daøng hôn phaàn naøo vôùi söï trôï giuùp cuûa maùy tính, ngöôøi hoïa só ñöôïc maùy tính taïo ra moät caûm giaùc laø y nhö ñang laøm vieäc ngoaøi ñôøi thöïc baèng caùch cung caáp nhöõng "coâng cuï" nhö baøn veõ, baûn maøu, moät soá thao taùc nhö caét, daùn, taåy, xoaù, thu, phoùng… Heä Patterns Hôn theá nöõa, maùy tính vôùi khaû naêng laäp trình vaø löu tröõ hình aûnh cuûa mình ñaõ thöïc söï trôû thaønh ngöôøi coäng söï ñaéc löïc cho caùc nhaø taïo maãu khi coù theå taïo ra haøng loaït maãu maõ môùi vôùi nhieàu kieåu daùng ñeïp nhôø caùc giaûi thuaät höõu hieäu cuûa rieâng mình vaø löu tröõ nhöõng maãu veõ coù saün naøy saün saøng phuïc vuï khi caàn thieát, töø ñoù coù theå noùi maùy tính noùi chung vaø ñoà hoïa trong maùy tính noùi rieâng ñaõ ñoùng goùp raát nhieàu trong vieäc hoã trôï cho caùc nhaø thieát keá vaø taïo maãu baèng caùc heä maãu veõ saün coù cuûa mình. Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn Trang 2 Luaän AÙn Toát Nghieäp Phaàn thuyeát minh Ngoaøi ra, trong haàu heát taát caû caùc phaàn meàm öùng duïng ngaøy nay, heä caùc patterns cuõng ñoùng goùp moät phaàn raát lôùn khi caùc nhaø laäp trình muoán thöïc hieän nhöõng giao dieän ñoà hoïa. Chuùng ta coù theå thaáy trong phaàn lôùn caùc nhaø maùy saûn xuaát treân theá giôùi hieän nay vaø ñaëc bieät laø trong nhöõng naêm gaàn ñaây ôû Vieät nam, caùc heä thoáng ñieåu khieån töï ñoäng caùc quy trình saûn xuaát trong nhaø maùy (heä automation söû duïng PLC) thì söï ñoùng goùp cuûa caùc maãu veõ cuõng trôû neân raát phoå duïng. Chaúng haïn nhö khi muoán theå hieän caùc chi tieát, linh kieän hay caùc daây chuyeàn coù maët trong nhaø maùy leân treân maøn hình thì khoâng coù gì höõu hieäu hôn laø söû duïng caùc pattern ñaõ ñöôïc thieát keá saün vaø ngöôøi laäp trình chæ vieäc ñònh vò cho caùc patterns moâ taû caùc chi tieát naøy maø khoâng nhaát thieát phaûi ngoài veõ laïi töøng chi tieát moät. Beân caïnh ñoù, moät soá phaàn meàm ñoà hoïa ngaøy nay luoân coù keøm theo caùc thö vieän hình aûnh ñaõ ñöôïc thieát keá saün hoã trôï raát nhieàu cho caùc nhaø taïo maãu, thieát keá vaø chuùng ta coù theå khaúng ñònh laø caùc thö vieän naøy phaàn lôùn laø ñöôïc taïo ra töø nhöõng giaûi thuaät vaø caùc chöông trình ñaõ ñöôïc laäp trình saün treân maùy tính. Keát luaän Toùm laïi, noùi ñeán ñoà hoïa chaéc coù leõ moãi chuùng ta ñeàu bieát ñeán söï phong phuù vaø ña daïng cuûa laõnh vöïc naøy. Nhöõng chöông trình ñoà hoïa ngaøy nay ña daïng veà chuû ñeà, phong phuù veà soá löôïng vaø coøn xuaát saéc veà chaát löôïng. Ñieàu naøy cuõng deã hieåu bôûi caùc coâng ty phaàn meàm ngaøy nay coù khaû naêng ñaàu tö lôùn veà taøi chính. Vì leõ ñoù, trong phaïm vi ñoà aùn thöïc taäp toát nghieäp naøy, vôùi nhöõng muïc ñích neâu treân, chuùng ta seõ laàn löôït nghieân cöùu nhöõng cô sôû lyù thuyeát , hieän thöïc vaøo chöông trình vaø nhöõng giaûi thuaät cô baûn nhaèm coù theå taïo ra heä caùc maãu veõ (pattern) ñôn giaûn, ngaén goïn maø coù theå hieän thöïc ñöôïc nhöõng yù töôûng chuû ñaïo cuûa ñoà hoïa trong maùy tính hôn laø coù theå öùng duïng ñöôïc thaät söï trong cuoäc soáng. Vì thôøi gian nghieân cöùu raát haïn heïp cho neân ñoà aùn toát nghieäp khoâng theå traùnh ñöôïc nhöõng sai soùt. Chuùng em xin chaân thaønh caùm ôn söï ñoùng goùp cuûa caùc thaày coâ giaùo vaø caùc baïn sinh vieân ñoàng nghieäp ñeå coù theå hoaøn thieän ñoà aùn moät caùch xuaát saéc hôn. Moät laàn nöõa, xin chaân thaønh caùm ôn thaày giaùo Nguyeãn Taán Thieän, caùc thaày coâ giaùo thuoäc khoa Coâng Ngheä Thoâng Tin tröôøng Ñaïi Hoïc Kyõ Thuaät vaø caùc baïn sinh vieân ñoàng nghieäp ñaõ giuùp ñôõ, ñoùng goùp yù kieán ñeå ñoà aùn toát nghieäp naøy ñöôïc hoaøn thaønh. Sinh vieân thöïc hieän Bieän Coâng Minh - Nguyeãn Xuaân Sôn Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn Trang 3 Luaän AÙn Toát Nghieäp Chöông 1 Phaàn thuyeát minh TOÅNG QUAN VEÀ ÑOÀ HOÏA MAÙY TÍNH Ñoà hoïa maùy tính - moät trong nhöõng ngaønh nghieân cöùu cuûa khoa hoïc maùy tính - ngaøy nay ñaõ laø moät trong nhöõng laõnh vöïc phaùt trieån nhanh nhaát vaø lyù thuù nhaát. Ñoà hoïa maùy tính vôùi nhöõng tính naêng öu vieät cuûa mình, ngaøy caøng trôû thaønh moät trong nhöõng yeáu toá khoâng theå thieáu trong vieäc thieát keá caùc giao dieän vôùi ngöôøi söû duïng, trong caùc quaù trình xöû lyù caùc döõ lieäu khaû kieán, trong laõnh vöïc thöông maïi quaûng caùo treân truyeàn hình, trong ngaønh coâng ngheä thieát keá troø chôi, hình aûnh ñoäng vaø nhieàu, nhieàu caùc öùng duïng khaùc. Song song vôùi söï phaùt trieån cuûa coâng ngheä, maùy tính ngaøy nay ñaõ trôû thaønh ngöôøi baïn ñoàng haønh khoâng theå thieáu ñoái vôùi nhöõng ngöôøi coâng taùc trong vieäc thieát keá vaø xöû lyù hình aûnh do nhöõng coâng cuï höõu hieäu cuûa mình, cho neân chuùng ta coù theå noùi raèng, haàu nhö khoâng coù moät laõnh vöïc naøo maø vieäc hieån thò ñoà hoïa laïi khoâng phaùt huy ñöôïc nhöõng öu ñieåm cuûa mình vaø nhö theá cuõng chaúng laáy gì laøm ngaïc nhieân khi maø chuùng ta nhaän thaáy vieäc öùng duïng ñoà hoïa maùy tính laïi phaùt trieån moät caùch roäng raõi ñeán nhö vaäy. Maëc duø tröôùc ñaây caùc öùng duïng trong laõnh vöïc khoa hoïc kyõ thuaät phaûi döïa vaøo caùc thieát bò ñaéc tieàn vaø coàng keành nhöng vôùi söï tieán boä cuûa ngaønh khoa hoïc maùy tính ñaõ laøm cho ñoà hoïa maùy tính thöïc söï trôû thaønh moät coâng cuï coù giaù trò thöïc tieãn cao. Ngaøy nay, chuùng ta thaáy ñoà hoïa maùy tính söû duïng trong nhieàu laõnh vöïc khaùc nhau nhö khoa hoïc, kyõ thuaät, y khoa, thöông maïi, coäng nghieäp, hoäi hoïa, giaûi trí, quaûng caùo, giaùo duïc vaø ñaøo taïo, v..v.. vaø v..v.. Thieát Keá Vôùi Söï Hoã Trôï Cuûa Maùy Tính (Computer Aided Design) Moät trong caùc öùng duïng quan troïng nhaát cuûa ñoà hoïa maùy tính laø hoã trôï cho caùc quaù trình thieát keá, ñaëc bieät laø trong laõnh vöïc kieán truùc vaø cheá taïo, tuy nhieân nhö chuùng ta ñaõ bieát, haàu nhö toaøn boä caùc saûn phaåm coù maët trong cuoäc soáng ngaøy hoâm nay ñöôïc saûn xuaát ra ñeàu coù söï hoã trôï ñaéc löïc cuûa maùy tính, töø nhöõng quaù trình ñôn giaûn nhö taïo maãu cho ñeán phöùc taïp nhö xöû lyù hình aûnh trong caùc öùng duïng cuûa y hoïc, ñoà hoïa maùy tính ñeàu ñoùng goùp moät phaàn raát quan troïng. Ñeå coù moät caùi nhìn toång quaùt nhaát veà söï öùng duïng cuûa ñoà hoïa maùy tính, chuùng ta haõy xem xeùt ñeán CAD - phöông phaùp thieát keá vôùi söï trôï giuùp cuûa maùy tính (Computer Aided Design) - ñaõ ñöôïc söû duïng raát roäng raõi trong vieäc thieát keá caùc toøa nhaø cao taàng, thieát keá xe maùy, maùy bay, taøu vuõ truï, maùy tính, trong caùc saûn phaåm ngaønh deät vaø nhieàu saûn phaåm cuûa caùc ngaønh ngheà khaùc. Nhö vaäy thì ñoà hoïa maùy tính hoã trôï cho caùc quaù trình thieát keá ñoù nhö theá naøo? Trong moät soá caùc öùng duïng veà thieát keá, tröôùc tieân ñoái töôïng ñöôïc hieån thò döôùi daïng caùc ñöôøng bao cuûa moät wireframe cho pheùp chuùng ta thaáy ñöôïc hình daïng toång quaùt cuõng nhö caùc chi tieát beân trong ñoái töôïng. Ngoaøi ra, caùch hieån thò baèng wireframe nhö theá naøy cuõng cho Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn Trang 4 Luaän AÙn Toát Nghieäp Phaàn thuyeát minh pheùp ngöôøi thieát keá nhaän daïng ñöôïc nhanh choùng töông quan giöõa caùc chi tieát nhaèm coù ñöôïc moät söï löïa choïn ñuùng ñaén cho hình daïng seõ thieát keá. Vôùi söï giuùp ñôõ cuûa CAD, ngöôøi thieát keá seõ coù ñöôïc moät moâi tröôøng thieát keá nhieàu cöûa soå vaø ñieàu naøy giuùp cho hoï coù theå nhìn thaáy caùc ñoái töôïng ñöôïc phoùng to moät caùch deã daøng cuõng nhö coù theå thaáy ñöôïc vaät theå vôùi nhieàu goùc nhìn khaùc nhau. Trong laõnh vöïc saûn xuaát phim hoaït hoïa, caùc öùng duïng CAD thöôøng xuyeân ñöôïc söû duïng. Ñoái vôùi nhöõng hình aûnh ñoäng, chuùng seõ ñöôïc hieån thò leân maøn hình döôùi daïng caùc wireframe vaø ñieàu naøy giuùp ích raát nhieàu cho quaù trình kieåm tra söï toái öu hoùa cuûa heä thoáng. Caùc vaät theå khi ñöôïc hieån thò döôùi daïng beà maët nhö vaäy seõ laøm cho quaù trình tính toaùn töøng chuyeån ñoäng cuûa vaät theå seõ nhanh hôn vaø ñieàu naøy giuùp cho ngöôøi thieát keá coù theå taïo ra ñöôïc caùc chuyeån ñoäng nhòp nhaøng uyeån chuyeån hôn. Ngaønh kieán truùc söû duïng phöông phaùp bieãu dieãn hình aûnh töông taùc ñeå coù theå thöïc hieän vieäc thieát keá cuûa mình ví duï nhö khi muoán theå hieän caùc chi tieát treân neàn nhaø, caùc kieán truùc sö seõ bieãu dieãn treân neàn thieát keá caùc chi tieát seõ ñöôïc hieån thò nhö laø vò trí caùc phoøng, cöûa ra vaøo, cöûa soå, caàu thang, v..v.. Trong laõnh vöïc thieát keá ñieän, ngöôøi thieát keá cuõng coù theå söû duïng phaàn meàm CAD ñeå hieån thò sô ñoà maïch ñieän, sô ñoà boá trí caùc thieát bò ñieän, caùch ñi daây, v..v vaø v..v.. Noùi toùm laïi, trong thöïc teá, coù raát nhieàu heä thoáng vaø saûn phaåm ñöôïc thieát keá ñeàu coù söï hoã trôï raát ñaéc löïc cuûa phaàn meàm CAD. Nhöõng Kyõ Xaûo Maùy Tính Phöông phaùp ñoà hoïa trong maùy tính cuõng ñöôïc söû duïng raát roäng raõi trong caùc öùng duïng myõ thuaät vaø quaûng caùo thöông maïi. Caùc nhaø hoïa só thöôøng söû duïng caùc kyõ xaûo khaùc nhau cuûa maùy tính hay nhö caû vieäc söû duïng caùc phaàn meàm chuyeân duïng nhö laø Lumena paintbrush hoaëc caùc chöông trình khaùc nhö PixelPaint, SuperPaint, caùc chöông trình CAD, caùc chöông trình bieãu dieãn caùc kyù hieäu toaùn hoïc (Mathemetica), caùc goùi chöông trình saûn xuaát phim hoaït hình ñeå thieát keá hình daùng cuõng nhö chuyeån ñoäng cuûa ñoái töôïng. Coøn trong laõnh vöïc myõ thuaät, nhieàu kyõ xaûo khaùc nhau cuûa maùy tính ñöôïc söû duïng ñeå taïo ra caùc hình aûnh, ñaëc bieät laø caùc hình aûnh ba chieàu. Coøn trong laõnh vöïc quaûng caùo thöông maïi, ñoà hoïa maùy tính ñöôïc söû duïng ñeå taïo caùc logo hay caùc hình aûnh quaûng caùo khaùc, ñoà hoïa maùy tính coøn cho pheùp keát hôïp hieån thò hình aûnh vaø hieån thò chöõ phuïc vuï raát toát cho caùc chöông trình quaûng caùo treân truyeàn hình. Trong laõnh vöïc giaûi trí, caùc kyõ xaûo söû duïng ñoà hoïa trong maùy tính cuõng giuùp ích raát nhieàu, ñaëc bieät höõu hieäu ñoái vôùi caùc ngaønh laøm phim. Coù raát nhieàu boä phim trong nhöõng naêm gaàn ñaây ñeàu öùng duïng caùc kyõ xaûo trong ñoà hoïa maùy tính raát toát nhaèm laøm taêng theâm tính haáp daãn cho caùc boä phim.”Coâng vieân kyû Jura”, “Thieát Moäc Lan”, “Vua Sö Töû” …laø caùc boä phim minh chöùng raát roõ neùt cho lôïi ích cuûa ñoà hoïa trong maùy tính. Giaùo Duïc Vaø Ñaøo Taïo Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn Trang 5 Luaän AÙn Toát Nghieäp Phaàn thuyeát minh Trong nhöõng ngaønh nhö vaät lyù, sinh hoïc, taøi chaùnh, kinh teá thì ñoà hoïa maùy tính cuõng ñöôïc söû duïng nhieàu nhaèm hoã trôï cho vieäc giaùo duïc. Caùc moâ hình trong heä thoáng vaät lyù, sinh hoïc, moâ hình phaùt trieån daân soá, moâ hình caùc thieát bò maùy moùc laø nhöõng öùng duïng giuùp ích raát nhieàu cho caùc hoïc sinh. Chuùng ta coù theå ñöa ra ôû ñaây moät soá öùng duïng cuûa ñoà hoïa maùy tính trong vieäc giaùo duïc ñaøo taïo nhö sau: Caùc heä thoáng ñaëc bieät nhö vieäc moâ phoûng caùc quaù trình thöïc teá hay nhöõng hình aûnh bieãu dieãn caùc cô quan beân trong cuûa con ngöôøi roài ñeán caùc hình aûnh thu töø veä tinh, döôùi bieån saâu, taát caû ñeàu coù theå öùng duïng ñoà hoïa trong maùy tính môùi coù theå hieån thò nhöõng hình aûnh naøy leân maøn hình giuùp cho hoïc sinh coù moät caùi nhìn cuï theå vaø roõ raøng hôn maø khoâng caàn phaûi coù nhöõng hình aûnh thöïc teá hay khoâng caàn phaûi ñaàu tö nhieàu ñeå trang bò nhöõng thieát bò thaät. Xöû Lyù AÛnh Maëc duø caùc phöông phaùp ñöôïc söû duïng trong ñoà hoïa maùy tính vaø xöû lyù aûnh gaàn nhö laø gioáng nhau nhöng caû hai laõnh vöïc naøy ñeàu coù nhöõng hoaït ñoäng khaùc nhau veà tính chaát. Trong ñoà hoïa maùy tính, maùy tính chæ duøng ñeå taïo ra hình aûnh, coøn trong xöû lyù aûnh, ngöôïc laïi thöôøng öùng duïng caùc kyõ thuaät khaùc nhau ñeå söûa ñoåi hay phaân tích moät taám hình cho tröôùc. Hai öùng duïng caên baûn cuûa xöû lyù aûnh laø laøm taêng chaát löôïng hieäu quaû cuûa moät böùc aûnh vaø taïo ra tri giaùc maùy ñoái vôùi nhöõng thoâng tin khaû kieán. Tuy nhieân, ñoà hoïa maùy tính vaø xöû lyù aûnh thoâng thöôøng hay ñöôïc keát hôïp laïi trong cuøng moät öùng duïng, ví duï nhö trong caùc öùng duïng cuûa y khoa, caùc kyõ thuaät cuûa ñoà hoïa maùy tính vaø xöû lyù aûnh thöôøng ñöôïc aùp duïng ñoàng thôøi ñeå taïo neân nhöõng moâ hình nhaân taïo veà con ngöôøi nhaèm phuïc vuï cho vieäc nghieân cöùu trong phaãu thuaät. Vaø ngaøy nay, hai laõnh vöïc ñoà hoïa maùy tính vaø xöû lyù aûnh cuõng ñöôïc keát hôïp laïi ñeå hoã trôï cho vieäc thieát keá caùc heä phaãu thuaät vôùi söï trôï giuùp cuûa maùy tính. Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn Trang 6 Luaän AÙn Toát Nghieäp Phaàn thuyeát minh Chöông 2 CÔ SÔÛ TOAÙN HOÏC CUÛA CAÙC HEÄ TRUÏC TOÏA ÑOÄ & NHÖÕNG PHÖÔNG THÖÙC HIEÄN THÖÏC TRONG ÑOÀ HOÏA MAÙY TÍNH Moät vaán ñeà voâ cuøng quan troïng trong neàn taûng lyù thuyeát cuûa ñoà hoïa trong maùy tính coù leõ laø vaán ñeà heä truïc toïa ñoä. Bôûi moät leõ laø taát caû caùc vaán ñeà nhö ñònh vò, hieån thò, thöïc thi ñoà hoïa ñeàu ñöôïc ñaët neàn taûng treân heä toïa ñoä ñònh tröôùc, cho neân tröôùc khi tieáp tuïc nghieân cöùu caùc phaàn khaùc trong ñoà hoïa maùy tính, chuùng ta seõ baét ñaàu baèng vieäc nghieân cöùu cô sôû lyù thuyeát cuûa heä truïc toïa ñoä, heä truïc toïa ñoä trong moäi tröôøng windows vaø caùc phöông thöùc hieän thöïc chuùng trong ñoà hoïa maùy tính. Ñaët Vaán Ñeà Nhö chuùng ta ñaõ ñeà caäp trong chöông moät, baûn chaát cuûa ñoà hoïa maùy tính laø laøm theá naøo ñeå coù theå moâ taû vaø thao taùc caùc ñoái töôïng cuûa theá giôùi thöïc baèng maùy tính. Ñeå thöïc hieän ñöôïc ñieàu naøy, moät soá vaán ñeà caàn ñöôïc giaûi quyeát bao goàm: - Caùc ñoái töôïng ñöôïc moâ taû trong toïa ñoä theá giôùi thöïc, trong khi ñoù heä toaï ñoä thieát bò duøng ñeå hieån thò laïi duøng heä toïa ñoä nguyeân, ngoaøi ra caùch ñònh nghóa ñoái vôùi moãi loaïi thieát bò khaùc nhau laø khaùc nhau. Vaäy caàn phaûi coù moät phöông phaùp chuyeån ñoåi naøo ñoù ñeå coù theå chuyeån ñoåi deã daøng caùc moâ taû veà toïa ñoä cöïc giöõa caùc heä toïa ñoä noùi treân. - Do nhöõng giôùi haïn veà maët thieát bò neân ñeå coù theå hieån thò vaø thao taùc caùc ñoái töôïng cuûa theá giôùi thöïc, caàn phaûi phaân tích caùc ñoái töôïng phöùc taïp thaønh caùc thaønh phaàn ñôn giaûn hôn maø maùy tính coù theå hieån thò. Vaán ñeà ñaët ra ôû ñaây laø thaønh phaàn ñôn giaûn ñöôïc ñònh nghóa nhö theá naøo ñeå töø ñoù coù theå xaây döïng laïi caùc ñoái töôïng phöùc taïp ban ñaàu. Trong chöông naøy, chuùng ta seõ laàn löôït tìm hieåu caùc phöông phaùp ñeå giaûi quyeát vaán ñeà treân. Cuï theå laø tìm hieåu veà caùc heä toïa ñoä ñöôïc duøng ñeå moâ taû caùc ñoái töôïng vaø caùc caùch chuyeån ñoåi giöõa chuùng; tìm hieåu veà caùc thaønh phaàn ñoà hoïa cô sôû; tìm hieåu veà nguyeân taéc laøm vieäc cuûa caùc thieát bò duøng trong ñoà hoïa trong vieäc moâ taû vaø thao taùc caùc ñoái töôïng. Vaán Ñeà Toïa Ñoä Ñeå Bieãu Dieãn Caùc Ñoái Töôïng 1. Heä toïa ñoä theá giôùi thöïc vaø heä toïa ñoä thieát bò Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn Trang 7 Luaän AÙn Toát Nghieäp Phaàn thuyeát minh 1.1 Heä toïa ñoä theá giôùi thöïc Heä toïa ñoä theá giôùi thöïc (hay heä toïa ñoä thöïc) laø heä toïa ñoä ñöôïc duøng moâ taû caùc ñoái töôïng cuûa theá giôùi thöïc. Moät trong caùc heä toïa ñoä thöïc thöôøng ñöôïc duøng nhaát ñoù laø heä toïa ñoä Descartes. Vôùi heä toïa ñoä naøy, baát kyø moät ñieåm naøo trong maët phaúng cuõng ñöôïc moâ taû baèng moät caëp toïa ñoä (x,y) trong ñoù x, y ∈ R; Goác toïa ñoä laø ñieåm O coù toïa ñoä (0, 0). Caùc truïc toïa ñoä coù chieàu döông ñöôïc quy ñònh nhö hình veõ; Ox, Oy laàn löôït ñöôïc goïi laø truïc hoaønh vaø truïc tung; x ñöôïc goïi laø hoaønh ñoä vaø y ñöôïc goïi laø tung ñoä. Caùc toïa ñoä theá giôùi thöïc cho pheùp ngöôøi duøng söû duïng baát kyø moät thöù nguyeân (dimension) quy öôùc (foot, cm, mm, km, inch, …) naøo vaø coù theå lôùn nhoû tuøy yù. P(x,y) y O x Hình 1.1. Heä toïa ñoä theá giôùi thöïc 1.2 Heä toïa ñoä thieát bò (device coordinates) Heä toïa ñoä thieát bò laø heä toïa ñoä ñöôïc duøng bôûi moät thieát bò xuaát cuï theå naøo ñoù nhö maùy in, maøn hình,… Ñaëc ñieåm chung cuûa heä toïa ñoä thieát bò ñoù laø: Caùc ñieåm trong heä toïa ñoä thieát bò cuõng ñöôïc moâ taû bôûi moät caëp toïa ñoä (x,y), tuy nhieân ñieåm khaùc vôùi heä toïa ñoä thöïc laø x,y ∈ N. Ñieàu naøy cho thaáy caùc ñieåm trong heä toïa ñoä thöïc ñöôïc ñònh nghóa lieân tuïc, coøn caùc ñieåm trong heä toïa ñoä thieát bò laø rôøi raïc do tính chaát cuûa taäp caùc soá töï nhieân. y O Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn x Trang 8 Luaän AÙn Toát Nghieäp Phaàn thuyeát minh Hình 1.2. Heä toïa ñoä thieát bò Caùc toïa ñoä x, y cuûa heä toïa ñoä khoâng theå lôùn tuøy yù maø ñeàu bò giôùi haïn trong moät khoaûng naøo ñoù. Moät soá thieát bò chæ cho x chaïy trong khoaûng [0, 640], y chaïy trong khoaûng [0, 480]. Khoaûng giôùi haïn caùc toïa ñoä x, y laø khaùc nhau ñoái vôùi töøng loaïi thieát bò khaùc nhau. Chuùng ta cuõng neân löu yù, vôùi caùc heä toïa ñoä thieát bò hieän nay, ña soá ñeàu ñònh nghóa goác toïa ñoä O laø goùc treân beân traùi cuûa maøn hình thieát bò. Tuy nhieân ñeå ñôn giaûn trong caùc thao taùc tính toaùn, chuùng ta vaãn coi nhö heä toïa ñoä thieát bò ñöôïc ñònh nghóa nhö hình 1.2 2. Heä toïa ñoä thieát bò ñöôïc chuaån (normalized device coordinates - NDC) - AÙnh xaï vaøo toïa ñoä thieát bò. Do caùch ñònh nghóa cuûa caùc heä toïa ñoä thieát bò khaùc nhau neân moät hình aûnh hieån thò ñöôïc treân thieát bò naøy chöa chaéc hieån thò chính xaùc treân thieát bò kia. Chính vì vaäy, caàn xaây döïng moät heä toïa ñoä thieát bò ñöôïc chuaån (hay heä toïa ñoä ñöôïc chuaån) ñaïi dieän chung cho taát caû caùc thieát bò ñeå coù theå moâ taû caùc hình aûnh cuûa theá giôùi thöïc maø khoâng phuï thuoäc vaøo baát cöù thieát bò naøo. Trong heä toïa ñoä chuaån, caùc toïa ñoä x, y seõ ñöôïc gaùn cho caùc gía trò trong khoaûng töø [0, 1]. Nhö vaäy vuøng khoâng gian cuûa heä toïa ñoä ñöôïc chuaån chính laø hình vuoâng ñôn vò coù goùc traùi döôùi laø (0,0) vaø goùc phaûi treân laø (1,1). Luùc naøy vieäc moâ taû caùc ñoái töôïng thöïc ñöôïc thöïc hieän theo quaù trình sau: - Chuyeån caùc toïa ñoä theá giôùi thöïc thaønh caùc toïa ñoä thieát bò ñaõ ñöôïc chuaån hoùa. - Chuyeån caùc toïa ñoä thieát bò ñöôïc chuaån hoùa thaønh caùc toïa ñoä thieát bò töông öùng vôùi töøng thieát bò cuï theå. Ñieàu naøy giuùp cho heä thoáng trôû neân linh hoaït hôn, coù khaû naêng thích nghi vôùi caùc thieát bò xuaát khaùc nhau. Maøn hình AÛnh ñònh nghóa theo caùc toïa ñoä cuûa theá giôùi thöïc Theo caùc toïa ñoä chuaån hoùa Toïa ñoä thieát bò Maùy in Caùc thieát bò khaùc y Sinh vieân thöïc hieän: 1 ymax x Bieän Coâng Minh 0 - Nguyeãn Xuaân 1Sôn 0 x max Trang 9 Luaän AÙn Toát Nghieäp Phaàn thuyeát minh Hình 1.3 - Caùc pheùp bieán ñoåi toïa ñoä y Maøn hình thieát bò 1 (x2, y2) y1 (x1, y1) x1 1 x Hình 1.4 - Caùch söû duïng heä toïa ñoä ñöôïc chuaån 3. Söï chuyeån ñoåi giöõa caùc heä toïa ñoä 3.1. Chuyeån ñoåi töø heä toïa ñoä thöïc sang heä toïa ñoä ñöôïc chuaån Vieäc chuyeån ñoåi töø heä toïa ñoä thöïc sang heä toïa ñoä ñöôïc chuaån töông ñoái ñôn giaûn. Ta chæ caàn xaùc ñònh hình vuoâng khoâng gian lôùn nhaát trong heä toïa ñoä thöïc maø ngöôøi duøng duøng ñeå ñònh nghóa caùc ñoái töôïng, goïi caïnh cuûa hình vuoâng ñoù laø c(c>0). Luùc naøy moät ñieåm P(x, y) thuoäc theá giôùi thöïc seõ ñöôïc aùnh xaï thaønh ñieåm Po(xo, yo) trong heä toïa ñoä ñöôïc chuaån hoùa nhö sau: xo = x/c yo = y/c Deã daøng kieåm chöùng ñöôïc xo, yo thay ñoåi trong khoaûng [0, 1] 3.2. Chuyeån ñoåi töø heä toïa ñoä ñöôïc chuaån sang heä toïa ñoä thieát bò Thoâng thöôøng ta seõ aùnh xaï tröïc tieáp caùc ñieåm töø hình vuoâng ñôn vò cuûa NDC sang hình vuoâng lôùn nhaát DS (device square) cuûa "maøn hình" thieát bò. Ñieàu naøy coù nghóa laø vôùi moãi ñieåm Po(xo, yo) trong NDC chuùng ta seõ aùnh xaï noù thaønh ñieåm P1(x1, y1) Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn Trang 10 Luaän AÙn Toát Nghieäp Phaàn thuyeát minh töông öùng trong hình vuoâng DS (ta coi DS naèm giöõa maøn hình thieát bò trong caùc tính toaùn sau naøy). Hình vuoâng lôùn NDC 1 yo y1 Po xo 1 P1 x1 Heä toïa ñoä thieát bò Hình 1.5. - Söï aùnh xaï töø NDC sang moät thieát bò cuï theå Caùch aùnh xaï töø NDC sang DS phaûi laø aùnh xaï tuyeán tính ñeå ñaûm baûo tính caân xöùng. Ta coù coâng thöùc chuyeån ñoåi (1.1): x1 = Axo + B y1 = Cyo + D (1.1) trong ñoù A, B, C, D laø caùc haèng soá ñöôïc xaùc ñònh nhö sau: A = ymax B = (xmax - ymax) / 2 C = ymax D = 0 trong tröôøng hôïp xmax >= ymax vaø vôùi (0, 0), (xmax , ymax ) laàn löôït laø caùc toïa ñoä goùc treân beân traùi vaø goùc döôùi beân phaûi cuûa maøn hình thieát bò. Haàu heát caùc khoâng gian hieån thò cuûa caùc thieát bò coù daïng hình chöõ nhaät chöù khoâng phaûi laø hình vuoâng, do ñoù vieäc aùnh xaï nhö treân seõ gaây laõng phí khi khoâng söû duïng heát khoâng gian naøy vaø gaây khoù chòu cho ngöôøi söû duïng. Trong moät hình chöõ nhaät, ta ñònh nghóa R laø tæ soá cuûa chieàu cao vaø chieàu roäng cuûa noù: R = height/width Luùc ñoù, ñeå coù theå veõ ñöôïc baát kyø ñieåm naøo treân toaøn boä khoâng gian hieån thò cuûa thieát bò, ta seõ thay ñoåi coâng thöùc aùnh xaï theo R nhö sau (giaû söû R < 1): Thu nhoû khoâng gian NDC töø hình vuoâng thaønh hình chöõ nhaät RNDC sao cho noù coù cuøng tæ soá phöông vôùi hình chöõ nhaät cuûa maøn hình thieát bò RDev. Deã thaáy raèng vôùi gæa thieát R < 1, hình chöõ nhaät RNDC lôùn nhaát seõ thoûa maõn tính chaát treân laø seõ coù chieàu x thay ñoåi töø 0 ñeán 1 vaø chieàu y thay ñoåi töø 0 ñeán R. Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn Trang 11 Luaän AÙn Toát Nghieäp Phaàn thuyeát minh Luùc naøy: Vôùi xo = 0, ta coù x1 = 0 vaø x0 = 1, ta coù x1 = xmax Töông töï Vôùi yo = 0, ta coù y1 = 0 vaø y0 = R, ta coù y1 = ymax Do ñoù coâng thöùc aùnh xaï luùc naøy seõ laø (1.2): x1 = xmax xo (A = xmax , B = 0) y1 = xmax yo (C = xmax , D = 0) Vôùi R = ymax / xmax Heä soá R NDC 1 R 1 RNDC RDev Hình 1.6. - Quùa trình môû roäng vuøng veõ treân maøn hình Cöûa Soå Vaø Mieàn Xuaát Cöûa soå (Windows) ñöôïc ñònh nghóa nhö laø moät vuøng khoâng gian hình chöõ nhaät trong ñoù caùc phaàn töû hình hoïc seõ ñöôïc veõ ra. Nhö vaäy nhöõng hình aûnh ñöôïc theå hieän leân thieát bò seõ ñöôïc goùi goïn trong vuøng cöûa soå naøy. Mieàn xuaát (Viewport) ñöôïc ñònh nghóa nhö laø moät vuøng khoâng gian hình chöõ nhaät trong heä toïa ñoä NDC theå hieän nhöõng thaønh phaàn seõ ñöôïc veõ. Mieàn xuaát seõ phaûi thuoäc vuøng heä toïa ñoä NDC aùnh xaï leân toïa ñoä thieát bò. Nhöõng phaàn töû hình hoïc cuûa windows seõ töông xöùng vaøo mieàn xuaát. Nhö vaäy vieäc theå hieän hình veõ leân thieát bò thöïc chaát laø vieäc theå hieän hình veõ leân mieàn xuaát ñaõ ñöôïc thieát laäp cuûa thieát bò ñoù. Hieän Thöïc Vaán Ñeà Trong Moâi Tröôøng Windows Moâi tröôøng Windows cho pheùp chuùng ta quaûn lyù ñoäc laäp caùc thieát bò. Ñaây laø moät trong nhöõng tính naêng raát quan troïng cuûa Windows bôûi leõ chuùng ta coù theå xaây döïng öùng duïng treân neàn caùc thieát bò thoâng qua tính naêng naøy maø khoâng caàn quan taâm ñeán vieäc theå hieän Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn Trang 12 Luaän AÙn Toát Nghieäp Phaàn thuyeát minh öùng duïng treân heä toïa ñoä rieâng cuûa töøng thieát bò. Maët khaùc, laäp trình vieân cuõng khoâng caàn quan taâm ñeán heä thoáng khi coù söï thay ñoåi hay di chuyeån thieát bò coù theå laøm sai leäch hieäu quûa cuûa chöông trình nhö trong moâi tröôøng DOS. Khoâng gian toïa ñoä logic Khoâng gian toïa ñoä logic laø vuøng khoâng gian maø moâi tröôøng windows thieát laäp ñeå ngöôøi laäp trình thao taùc, xöû lyù treân ñoù. Windows cung caáp cho chuùng ta haøm aùnh xaï cheá ñoä toïa ñoä logic vaøo toïa ñoä thieát bò (SetMapMode(int nMapMode)). Vì ñôn vò khi xuaát vaên baûn vaø ñoà hoïa trong windows laø ñôn vò logic neân khi xuaát thoâng tin ra thieát bò cuï theå ñôn vò logic ñöôïc chuyeån thaønh ñôn vò vaät lyù (pixel). Quaù trình chuyeån töø ñôn vò logic ra ñôn vò vaät lyù ñöôïc xaùc ñònh baèng cheá ñoä hieån thò (mapping mode). Maëc nhieân, moät ñôn vò logic seõ baèng moät pixel, nhöng khi thay ñoåi cheá ñoä hieån thò ta coù theå thay ñoåi caû quan heä giöõa ñôn vò logic vaø ñôn vò vaät lyù. Ngoaøi vieäc thay ñoåi cheá ñoä bieán ñoåi ñôn vò do toïa ñoä, coù theå caû vieäc xaùc laäp tham soá khaùc cuõng laøm aûnh höôûng ñeán quaù trình hieån thò thoâng tin: thöù nhaát coù theå laø do chieàu roäng vaø chieàu cao cuûa cöûa soå theo ñôn vò logic hieän thôøi; thöù hai laø chuùng ta coù theå cho kích thöôùc cuûa mieàn xuaát. Mapping Mode (Cheá Ñoä Hieån Thò) Mapping Mode ñònh nghóa moät quan heä giöõa moät ñôn vò trong khoâng gian toïa ñoä logic vaøo töøng pixel cuûa thieát bò. Windows cung caáp taùm mapping mode ñöôïc söû duïng trong caùc öùng duïng cuûa Windows nhö sau: Mapping Mode MM_ANISOTROPIC MM_HIENGLISH MM_HIMETRIC MM_ISOTROPIC MM_LOENGLISH MM_LOMETRIC MM_TEXT MM_TWIPS YÙ Nghóa AÙnh xaï moät ñôn vò logic vaøo moät ñôn vò vaät lyù tuøy yù. Tyû leä khaùc nhau theo truïc x vaø y AÙnh xaï moät ñôn vò logic baèng 1/1000 inch. Truïc y höôùng leân AÙnh xaï moät ñôn vò logic baèng 1/100 mm. Truïc y höôùng leân AÙnh xaï moät ñôn vò logic vaøo moät ñôn vò vaät lyù. Moät ñôn vò theo truïc x luoân luoân baèng moät ñôn vò theo truïc y AÙnh xaï moät ñôn vò logic baèng 1/100 inch. Truïc y höôùng leân AÙnh xaï moät ñôn vò logic baèng 1/10 mm. Truïc y höôùng leân AÙnh xaï moät ñôn vò logic vaøo moät pixel. Truïc y höôùng xuoáng AÙnh xaï moät ñôn vò logic vaøo 1/1440 inch (1/20 point; vôùi 1 point = 1/72 inch). Truïc y höôùng leân Trong ñoù Windows cung caáp 6 mapping mode baét buoäc (ngoaïi tröø MM_ANISOTROPIC vaø MM_ISOTROPIC). Nhöõng mapping mode naøy laø baét buoäc bôûi vì tyû leä chia laø coá ñònh, do öùng duïng khoâng theå thay ñoåi soá ñôn vò logic aùnh xaï vaøo moãi ñôn vò thieát bò. Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn Trang 13 Luaän AÙn Toát Nghieäp Phaàn thuyeát minh Cöûa Soå (Windows) Cöûa soå laø vuøng ngöôøi laäp trình laøm vieäc vôùi caùc hình aûnh ñoà hoïa hay vaên baûn. Trong cheá ñoä hieån thò khoâng baét buoäc (MM_ANISOTROPIC) vaø MM_ISOTROPIC) windows cho pheùp chuùng ta aán ñònh kích thöôùc cöûa soå theo ñôn vò logic. Khi aán ñònh moät trong soá cheá ñoä naøy ta caàn phaûi xaùc ñònh kích thöôùc cöûa soå baèng haøm (bôûi vì caùc cheá ñoä naøy chæ ñöôïc söû duïng vôùi chöông trình maø ñôn vò logic ñöôïc ñònh nghóa bôûi ngöôøi söû duïng, coøn kích thöôùc vaät lyù cuûa cöûa soå vaãn chöa ñöôïc xaùc ñònh cho ñeán thôøi ñieåm chuùng ta aán ñònh chuùng moät caùch roõ raøng). Haøm xaùc ñònh kích thöôùc cöûa soå trong cheá ñoä hieån thò MM_ANISOTROPIC vaø MM_ISOTROPIC laø SetWindowExt(). Haøm SetWindowExt() ñònh nghóa caùch chuyeån ñoåi töø toïa ñoä logic sang toïa ñoä thieát bò. Thöïc chaát khi thay ñoåi kích thöôùc logic cuûa cöûa soå, ta khoâng thay ñoåi kích thöôùc vaät lyù cuûa noù treân maøn hình maø ta chæ xaùc ñònh kích thöôùc cöûa soå theo ñôn vò logic do ta thieát laäp (hay xaùc ñònh quan heä giöõa caùc ñôn vò logic do cöûa soå söû duïng vaø ñôn vò vaät lyù (pixel) do thieát bò söû duïng). Mieàn Xuaát (Viewport) Mieàn xuaát laø mieàn chöông trình xuaát thoâng tin ra thieát bò. Ta coù theå thieát laäp kích thöôùc baát kyø cho mieàn xuaát. Ñoái vôùi cheá ñoä hieån thò MM_TEXT thì maëc nhieân kích thöôùc mieàn xuaát luoân luoân baèng kích thöôùc cöûa soå. Ñoái vôùi cheá ñoä hieån thò MM_ANISOTROPIC vaø MM_ISOTROPIC ta chæ ñònh kích thöôùc mieàn xuaát baèng haøm SetViewportExt(hdc, nXExtent, nYExtent). Kích thöôùc x vaø y cuûa mieàn xuaát ñònh nghóa caùch co giaõn ñôn vò heä toïa ñoä logic sao cho phuø hôïp vôùi ñôn vò heä toïa ñoä vaät lyù. Maëc khaùc tham soá naøy cuõng ñònh nghóa chieàu cuûa hai heä toïa ñoä. Ví duï: Giaû söû x cuûa cöûa soå laø 4, x cuûa mieàn xuaát laø 8 thì windows seõ chuyeån ñoåi 4 ñôn vò logic vaøo 8 ñôn vò vaät lyù vaø chieàu döông truïc hoaønh cuûa heä truïc toïa ñoä thieát bò seõ laø chieàu döông truïc hoaønh cuûa heä toïa ñoä logic; neáu y cuûa cöûa soå laø 2 vaø y cuûa mieàn xuaát laø -8 thì 2 ñôn vò logic chuyeån ñoåi thaønh 8 ñôn vò vaät lyù vaø chieàu döông truïc tung cuûa heä toïa ñoä thieát bò seõ laø chieàu aâm truïc tung cuûa heä truïc toïa ñoä logic. Goác Toïa Ñoä Goác toïa ñoä cuûa cöûa soå: laø goác toïa ñoä cuûa heä toïa ñoä logic Ta coù theå thay ñoåi goác toïa ñoä cuûa cöûa soå baèng caùch söû duïng haøm SetWindowOrg(). Baèng caùch thay ñoåi goác toïa ñoä, öùng duïng coù theå thay ñoåi caùch chuyeån töø heä toïa ñoä logic vaøo heä toïa ñoä thieát bò. Ví duï nhö ñeå dòch moät ñieåm veà phiaù phaûi, ta coù theå cho hoaønh ñoä goác windows moät giaù trò aâm vaø töông töï ñeå dòch moät ñieåm leân treân ta coù theå cho tung ñoä cuûa goác cöûa soå moät giaù trò aâm. Goác toïa ñoä cuûa mieàn xuaát laø goác toïa ñoä cuûa heä toïa ñoä thieát bò. Maëc nhieân, goác toïa ñoä cuûa mieàn xuaát laø ñieåm (0,0) cuûa cöûa soå. Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn Trang 14 Luaän AÙn Toát Nghieäp Phaàn thuyeát minh Ta coù theå di chuyeån goác toïa ñoä cuûa mieàn xuaát nhôø haøm SetViewportOrg(). Töông töï nhö thay ñoåi goác cöûa soå, thay ñoåi goác mieàn xuaát cuõng laøm thay ñoåi caùch chuyeån ñoåi töø toïa ñoä logic vaøo toïa ñoä thieát bò. Taát caû caùc ñieåm trong heä toïa ñoä logic ñöôïc chuyeån ñoåi vaøo heä toïa ñoä vaät lyù töông öùng vôùi phöông thöùc chuyeån ñoåi goác. Caùc Thaønh Phaàn Cô Sôû Cuûa Ñoà Hoïa Caùc hình aûnh phöùc taïp hieån thò treân maùy tính bao giôø cuõng ñöôïc taïo töø caùc ñoái töôïng ñoà hoïa cô sôû goïi laø caùc thaønh phaàn ñoà hoïa nguyeân thuûy (output graphics primitives). Goïi laø cô sôû bôûi vì chuùng coù theå ñöôïc hoã trôï tröïc tieáp töø phaàn cöùng cuûa thieát bò hay beân trong caùc heä ñoà hoïa cô sôû duøng ñeå phaùt trieån caùc öùng duïng ñoà hoïa (nhö GRAPH.TPU cuûa TURBO PASCAL). Moãi ñoái töôïng ñeàu bao goàm moät soá thuoäc tính ñeå quy ñònh tính chaát hieån thò cuûa chuùng. Ví duï ñoái vôùi ñoái töôïng laø ñöôøng thaúng ta coù caùc thuoäc tính: maøu ñeå veõ (color), beà roäng (width), kieåu cuûa ñöôøng thaúng (line style) laø dashed, dotted, hay solid. Sau ñaây laø caùc ñoái töôïng ñoà hoïa cô sôû cuøng caùc thuoäc tính (attributes) cuûa chuùng: 1. Ñieåm (Point), ñoaïn thaúng (Line), ñöôøng gaáp khuùc (Poly Line) Ñieåm (point) laø thaønh phaàn cô sôû ñöôïc ñònh nghóa trong moïi heä toïa ñoä. Ñoái vôùi heä toïa ñoä hai chieàu, moãi ñieåm ñöôïc xaùc ñònh bôûi caëp toïa ñoä (x,y). Hai ñieåm seõ quyeát ñònh moät ñöôøng thaúng (line). Ta coù theå moâ taû caùc ñöôøng thaúng baèng caùc phöông trình ñöôøng thaúng. Ñöôøng thaúng ñi qua hai ñieåm S(x1, y1) vaø E(x2, y2) coù phöông trình ñöôøng thaúng laø (x-x1)(y2-y1) = (y-y1)(x2-x1) hay (y2-y1)x - (x2-x1)y + x2y1 - x1y2 = 0 Nhöng thöïc teá maùy tính khoâng theå hieån thò toaøn boä moät ñöôøng thaúng maø chæ coù theå hieån thò moät ñoaïn thaúng (line segment) naèm giöõa ñieåm S(x1, y1) vaø E(x2, y2) maø thoâi. Hôn nöõa, khi hieån thò moät ñoaïn thaúng SE, do caùc thieát bò hieån thò thöïc chaát ñeàu laø moät löôùi nguyeân neân caùc ñieåm treân SE ñeàu phaûi ñöôïc nguyeân hoùa. Coù nhieàu thuaät toaùn khaùc nhau ñeå xaáp xæ caùc ñieåm veà toïa ñoä nguyeân nhöng trong ñoà hoïa hieän nay ngöôøi ta thöôøng söû duïng thuaät toaùn Beresenham. Ñeå ñôn giaûn ta thöôøng goïi ñoaïn thaúng laø line. Ñöôøng gaáp khuùc (Polyline) laø taäp caùc ñoaïn thaúng noái vôùi nhau moät caùch tuaàn töï. Caùc ñoaïn thaúng naøy khoâng nhaát thieát phaûi taïo thaønh moät hình kheùp kín vaø caùc ñoaïn coù theå caét laãn nhau. Ñieåm giao giöõa hai ñoaïn thaúng goïi laø ñænh (vertex). Caùc ñöôøng gaáp khuùc ñöôïc xaùc ñònh qua danh saùch caùc ñænh, moãi ñænh ñöôïc cho bôûi moät caëp toïa ñoä (x1, y1)(x2, y2)…(xn, yn) Veà thöïc chaát, polyline khoâng phaûi laø moät ñoái töôïng cô sôû vì noù coù theå bieãu dieãn qua taäp caùc ñoái töôïng cô sôû laø line nhöng ngöôøi ta vaãn xeáp noù vaøo dieän caùc ñoái töôïng cô Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn Trang 15 Luaän AÙn Toát Nghieäp Phaàn thuyeát minh sôû vì noù laø moät trong nhöõng ñoái töôïng raát hay ñöôïc söû duïng trong ñoà hoïa vaø haàu heát caùc GKS ñeàu hoã trôï cho ñoái töôïng naøy. Moät ña giaùc (polygon) laø moät ñöôøng gaáp khuùc coù ñieåm ñaàu vaø ñieåm cuoái truøng nhau. Caùc thuoäc tính cuûa polygon bao goàm: color - xaùc ñònh maøu ñeå veõ caùc ñoaïn thaúng; line width - xaùc ñònh ñoä roäng cuûa neùt veõ; line type - xaùc ñònh kieåu cuûa ñöôøng thaúng ñang veõ, coù theå laø solid, dashed, dotted, dot-dashed. Haàu heát caùc coâng cuï ñoà hoïa ñeàu ñònh nghóa taäp caùc kieåu ñöôøng thaúng coù theå duøng vaø cho pheùp ngöôøi duøng ñònh nghóa kieåu ñöôøng thaúng cuûa hoï thoâng qua moät maãu (pattern) goàm caùc soá 0, 1. Ñoái vôùi polyline, caùc ñoaïn thaúng trong cuøng moät polyline thì coù cuøng moät thuoäc tính. 2. Vuøng toâ (Fill Area) Xaùc ñònh vuøng toâ vôùi moät maøu hay moät maãu toâ naøo ñoù. Vuøng toâ ñöôïc xaùc ñònh baèng ña giaùc (polygon): (x1, y1)(x2, y2)…(xn, yn). Caùc thuoäc tính: color - maøu toâ; pattern - maãu toâ. Noù coù theå laø toâ thuaàn (solid) hay toâ theo caùc maãu nhö dash, dotted, dash-dotted,… 3. Vaên baûn (Text) Text laø taäp caùc kyù töï giuùp hieån thò noäi dung caùc thoâng ñieäp theo moät ngoân ngöõ naøo ñoù. Caùc thuoäc tính: color - xaùc ñònh maøu cuûa caùc kyù töï; font - xaùc ñònh boä kyù töï duøng ñeå hieån thò, noù ñònh nghóa kieåu, kích thöôùc cuûa kyù töï hieån thò. Hình daïng cuûa moãi kyù töï coù theå ñöôïc xaùc ñònh bôûi moät taäp caùc polyline (tröôøng hôïp font vector) hay laø moät pixel pattern (font bitmap). Coù raát nhieàu loaïi font khaùc nhau nhö font bitmap, font truetype, font CHR,…; character size - xaùc ñònh chieàu cao (height) vaø chieàu roäng (width) cuûa kyù töï. Caùc kyù töï ñònh nghóa baèng polyline coù theå deã daøng thay ñoåi kích thöôùc hôn laø caùc kyù töï ñöôïc ñònh nghóa baèng pixel pattern; character spacing - xaùc ñònh khoaûng caùch giöõa caùc kyù töï; text justification - xaùc ñònh söï canh chænh cuûa vaên baûn theå hieän. Noù coù theå laø canh traùi (left text), canh phaûi (right text), canh giöõa (center text), canh ñeàu nhau (justify text); text path - xaùc ñònh caùch hieån thò tuaàn töï cuûa caùc kyù töï. Noù coù theå laø phaûi sang traùi, töø treân xuoáng döôùi, töø traùi sang phaûi, töø döôùi leân treân.. Ngoaøi ra text coøn coù moät thuoäc tính nöõa, ñoù laø phöông ñöôøng thaúng maø doøng text hieån thò treân ñoù. Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn Trang 16 Luaän AÙn Toát Nghieäp Chöông 3 Phaàn thuyeát minh CÔ SÔÛ TOAÙN HOÏC CUÛA CAÙC ÑOÁI TÖÔÏNG ÑOÀ HOÏA & VIEÄC HIEÄN THÖÏC TRONG MOÂI TRÖÔØNG WINDOWS Nhö chuùng ta ñaõ bieát, hình aûnh coù theå ñöôïc moâ taû baèng nhieàu caùch khaùc nhau. Giaû söû chuùng ta coù moät maøn hình rôøi raïc, luùc ñoù hình aûnh hoaøn toaøn coù theå ñöôïc bieãu dieãn baèng moät taäp caùc ñieåm saùng treân maøn hình naøy. ÔÛ moät goùc ñoä khaùc, chuùng ta coù theå moâ taû hình aûnh baèng moät taäp hôïp caùc ñoái töôïng phöùc hôïp ví duï nhö laø caây coái, ñòa hình hay nhö laø caùc vaät duïng trong nhaø, caùc böùc töôøng thì hình aûnh coù theå ñöôïc theå hieän baèng caùch xaùc ñònh vò trí töông öùng treân heä truïc toïa ñoä cuûa caùc vaät theå. Hình daùng vaø maøu saéc cuûa moät vaät theå coù theå ñöôïc moâ taû baèng chuoãi caùc pixel hoaëc taäp hôïp caùc caáu truùc hình hoïc cô baûn ví duï nhö laø ñoaïn thaúng vaø caùc ña giaùc.Vaø hình aûnh sau ñoù ñöôïc hieån thò baèng caùch hoaëc chuyeån taûi caùc chuoãi pixel vaøo vuøng ñeäm khung daây hay baèng vieäc chuyeån ñoåi caùc ñaëc tính cuûa caùc caáu truùc hình hoïc cô baûn thaønh caùc maãu pixel töông öùng. Ñaëc bieät, caùc goùi phaàn meàm chuyeân duïng cho ñoà hoïa ngaøy nay coøn cung caáp cho chuùng ta caùc chöùc naêng moâ taû hình aûnh baèng caùc caáu truùc hình hoïc cô baûn vaø xem nhö ñoù laø caáu truùc cô sôû vaø ñoâi khi laïi taäp hôïp caùc caáu truùc cô sôû naøy laïi thaønh caùc caáu truùc khaùc phöùc taïp hôn. ÖÙng vôùi moãi ñoái töôïng cô sôû nhö treân, chuùng ta seõ coù moät döõ lieäu ñaàu vaøo töông öùng vaø nhöõng thoâng tin lieân quan khaùc chæ roõ caùch hieån thò caùc ñoái töôïng naøy. Ñieåm vaø ñoaïn thaúng chính laø thaønh phaàn ñôn giaûn nhaát cuûa hình aûnh. Beân caïnh ñoù, caùc ñoái töôïng cô sôû ñeå kieán taïo neân hình aûnh noùi treân coøn bao goàm luoân caû caùc ñöôøng troøn vaø ñoâi khi coøn laø caùc hình noùn, caùc maët phaúng baäc hai, caùc hình truï, maët truï, caùc ña giaùc vaø keå caû caùc chuoãi kyù töï. Chuùng ta coù theå baét ñaàu nghieân cöùu nhöõng thuû tuïc taïo hình baèng vieäc nghieân cöùu nhöõng thuaät toaùn taïo hình aûnh hai chieàu vaø ñaëc bieät seõ taäp trung vaøo phöông phaùp taïo hình baèng vieäc chuyeån ñoåi tia queùt trong nhöõng heä thoáng coù maøn hình hieån thò rôøi raïc. Ñieåm Vaø Ñöôøng Thaúng Trong maùy tính, ñieåm thöôøng ñöôïc hình thaønh baèng caùch chuyeån ñoåi caùc toïa ñoä töông öùng cuûa chuùng - ñöôïc cung caáp bôûi caùc chöông trình öùng duïng – vaøo moät thao taùc thích hôïp cuûa thieát bò xuaát trong traïng thaùi hoaït ñoäng. Ví duï nhö öùng vôùi maøn hình CRT, chuøm tia ñieän töû seõ ñaäp vaøo maøn phosphor laøm phaùt saùng caùc ñieåm töông öùng. Vieäc caùc chuøm tia ñieän töû seõ laøm phaùt saùng caùc ñieåm treân maøn hình nhö theá naøo coøn tuøy thuoäc vaøo caùc kyõ thuaät hieån thò. Trong caùc heä queùt ngaãu nhieân, ñieåm seõ ñöôïc löu tröõ trong danh saùch hieån thò vaø caùc giaù trò toïa ñoä seõ ñöôïc chuyeån ñoåi thaønh caùc sai leäch ñieän aùp taïi nhöõng ñieåm maø chuøm tia ñieän töû treân maøn hình seõ queùt ngang trong moät chu kyø. Ngöôïc laïi, ñoái vôùi caùc heä rôøi raïc ñen traéng, moät ñieåm seõ ñöôïc hình thaønh baèng caùch caøi ñaët giaù trò 1 cho vò trí töông Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn Trang 17 Luaän AÙn Toát Nghieäp Phaàn thuyeát minh öùng cuûa maøn hình trong vuøng ñeäm khung. Sau ñoù, chuøm tia ñieän töû seõ queùt theo chieàu ngang vaø phaùt ra caùc electron va ñaäp laøm phaùt saùng baát kyø vò trí treân maøn hình maø giaù trò töông öùng trong vuøng ñeäm khung laø 1. Trong heä RGB, vuøng ñeäm khung seõ ñöôïc chuyeån taûi ñoàng thôøi vôùi maõ maøu nhaèm coù theå hieån thò caùc vò trí ñuùng vôùi caùc maøu töông öùng cuûa noù. Ñoái vôùi ñöôøng thaúng, trong maùy tính, ñöôøng thaúng seõ ñöôïc veõ neân thoâng qua vò trí caùc ñieåm trung gian chaïy doïc theo suoát chieàu daøi con ñöôøng noái hai ñieåm ñaàu cuoái. Thieát bò xuaát sau ñoù seõ toâ maøu nhöõng ñieåm naøy vaø hình thaønh neân ñöôøng thaúng. Noùi moät caùch khaùc ñöôøng thaúng seõ ñöôïc hình thaønh bôûi moät taäp hôïp caùc ñieåm lieân tuïc nhau noái hai ñaàu cuûa ñöôøng thaúng ñoù. Trong nhöõng thieát bò tuaàn töï, ví duï nhö caùc thieát bò queùt ngaãu nhieân hay caùc buùt veõ theo kieåu vector, ñöôøng thaúng ñöôïc veõ ra moät caùch lieân tuïc hôn töø ñieåm ñaàu cho ñeán ñieåm cuoái nhôø söï sai leäch ñieän aùp bieán thieân theo chieàu doïc vaø chieàu ngang laøm cho söï thay ñoåi caùc giaù trò theo truïc x vaø truïc y laø nhöõng söï thay ñoåi tuyeán tính. Trong caùc thieát bò hieån thò söû duïng kyõ thuaät soá thì ñoaïn thaúng ñöôïc veõ baèng caùc ñieåm rôûi raïc noái lieàn hai ñieåm ñaàu vaø cuoái. Vò trí caùc ñieåm rôøi raïc naøy thoâng thöôøng ñöôïc tính toaùn thoâng qua phöông trình bieãu dieãn ñöôøng thaúng töông öùng. Ñoái vôùi maøn hình hieån thò rôøi raïc thì maøu saéc cuûa ñöôøng thaúng seõ ñöôïc taûi vaøo vuøng ñeäm khung taïi caùc vò trí öùng vôùi töøng pixel hình thaønh neân ñöôøng thaúng ñoù. Caùc thieát bò ñieàu khieån video seõ ñoïc caùc döõ lieäu töø vuøng ñeäm khung naøy vaø seõ veõ neân caùc ñieåm saùng treân maøn hình. Vò trí töông öùng cuûa caùc ñieåm saùng naøy seõ ñöôïc tham chieáu baèng caùc giaù trò soá töï nhieân vaø nhö theá caùc vò trí naøy chæ ñöôïc tính toaùn moät caùch töông ñoái vaø thuoäc ñöôøng thaúng noái lieàn hai ñieåm ñaàu vaø cuoái. Ví duï nhö ñeå tính toaùn cho vò trí (10.48, 20.59) thì heä thoáng seõ laøm troøn caùc giaù trò noùi treân vaø tính toaùn cho vò trí (10, 21). Vieäc laøm troøn caùc giaù trò toïa ñoä cuûa töøng ñieåm nhö theá seõ laøm cho ñöôøng thaúng taïo ra khoâng ñöôïc lieân tuïc maø coù hình daùng baäc thang, ñieàu naøy seõ ñöôïc nhaän thaáy raát roõ trong caùc thieát bò hieån thò rôøi raïc coù ñoä phaân giaûi thaáp vaø chuùng ta coù theå khaéc phuïc baèng caùch naâng cao ñoä phaân giaûi cuûa caùc thieát bò hieån thò naøy. ÔÛ moät möùc ñoä khaùc, chuùng ta cuõng coù theå taïo neân caùc ñöôøng thaúng lieân tuïc hôn baèng caùch ñieàu chænh ñoä saùng böùc xaï cuûa caùc ñieåm saùng. Ñoái vôùi caùc giaûi thuaät hieån thò hình aûnh trong heä thoáng hieån thò rôøi raïc ôû caáp thieát bò, vò trí cuûa caùc ñoái töôïng seõ ñöôïc chæ ra tröïc tieáp baèng caùc toïa ñoä nguyeân vaø nhö theá chuùng ta seõ giaû thieát raèng vieäc tham chieáu ñeán caùc vò trí cuûa pixel laø phuï thuoäc vaø soá haøng vaø soá coät cuûa heä thoáng queùt. Ñeå coù theå chuyeån taûi maøu saéc vaøo vuøng ñeäm khung taïi vò trí töông öùng vôùi coät x vaø haøng y, chuùng ta coù theå söû duïng thuû tuïc SetPixel(x, y) AÛnh höôûng baäc thang khi ñöôøng thaúng ñöôïc taïo baèng chuoãi caùc ñieåm Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn Trang 18 Luaän AÙn Toát Nghieäp Phaàn thuyeát minh Ñoâi khi, chuùng ta cuõng muoán tham khaûo ñeán cöôøng ñoä saùng cuûa moät ñieåm cho tröôùc naèm trong vuøng ñeäm khung, thuû tuïc coù theå söû duïng luùc ñoù laø getPixel(x, y) Giaûi Thuaät Veõ Ñöôøng Thaúng Phöông trình ñöôøng thaúng cô baûn laø y = m.x + b (1) trong ñoù m laø heä soá goùc cuûa ñöôøng thaúng vaø b laø ñoä dôøi theo truïc y. Giaû söû nhö (x1, y1) vaø (x2, y2) laø hai ñieåm thuoäc ñöôøng thaúng, luùc ñoù m vaø b seõ ñöôïc tính nhö sau: y2 y2 - y1 m = (2) x2 - x1 y1 b = y1 - m.x1 x1 (3) x2 Giaûi thuaät veõ ñöôøng thaúng seõ ñöôïc xaây döïng döïa treân phöông trình ñöôøng thaúng cho trong bieåu thöùc (1) vaø ñöôïc tính toaùn thoâng qua bieåu thöùc (2) vaø (3) ÖÙng vôùi moät söï thay ñoåi ∆x theo chieàu truïc x ta coù theå tính ñöôïc söï thay ñoåi theo truïc y töông öùng laø ∆y vôùi ∆y = m.∆x (4) töông töï, ta coù theå tính toaùn ∆x theo ∆y nhö sau: ∆y ∆x = (5) m Caùc phöông trình naøy seõ laø neàn taûng ñeå xaùc ñònh sai leäch ñieän aùp trong caùc thieát bò tuaàn töï. Ñoái vôùi ñöôøng thaúng coù heä soá goùc |m| < 1, ∆x coù theå ñöôïc xem laø töông öùng vôùi sai leäch ñieän aùp theo truïc x vaø söï sai leäch ñieän aùp theo truïc y laø ∆y coù theå cuõng deã daøng tính ñöôïc theo ∆x baèng phöông trình (4). Coøn ñoái vôùi ñöôøng thaúng coù heä soá goùc |m| > 1, ∆y coù theå ñöôïc xem laø töông öùng vôùi ñoä sai leäch ñieän aùp theo truïc y vaø khi ñoù ñoä sai leäch ñieän aùp theo truïc x coù theå töông öùng ñöôïc tính theo ∆y baèng phöông trình (5). Coøn ñoái vôùi ñöôøng thaúng coù heä soá goùc m = 1, sai leäch ñieän aùp theo chieàu doïc vaø chieàu ngang laø baèng nhau (∆x = ∆y). Vaø nhö vaäy öùng vôùi moãi tröôøng hôïp, moät ñöôøng thaúng lieân tuïc vôùi heä soá goùc laø m seõ ñöôïc veõ ra giöõa hai ñieåm cho tröôùc. Tuy nhieân trong heä thoáng rôøi raïc, ñöôøng thaúng ñöôïc taïo ra baèng caùc pixel, do ñoù khoaûng caùch caùc böôùc theo chieàu doïc vaø chieàu ngang seõ phuï thuoäc vaøo vieäc chia caét caùc pixel naøy. Vaø nhö theá chuùng ta phaûi tieán haønh laáy maãu taïi caùc ñieåm rôøi raïc vaø xaùc ñònh ñieåm caän keà vôùi caùc ñieåm ñaõ tieán haønh laáy maãu naøy. Quaù trình rôøi raïc hoùa moät ñoaïn thaúng theo truïc x ñöôïc bieãu dieãn nhö hình veõ sau: Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn Trang 19 Luaän AÙn Toát Nghieäp Phaàn thuyeát minh y2 y1 x1 x2 Giaûi Thuaät DDA (Digital Differential Analyser) Digital Differential Analyser (DDA) laø giaûi thuaät veõ ñöôøng thaúng döïa treân cô sôû tính toaùn hoaëc ∆y hoaëc ∆x thoâng qua vieäc söû duïng caùc phöông trình (4) vaø (5). Chuùng ta seõ tieán haønh laáy maãu ñoaïn thaúng theo ñoä dôøi ñôn vò töông öùng vôùi moät truïc toïa ñoä vaø xaùc ñònh giaù trò nguyeân töông öùng cuûa vò trí naèm saùt ñöôøng thaúng nhaát theo truïc coøn laïi. ÔÛ ñaây, chuùng ta giaû thieát laø heä soá goùc cuûa ñöôøng thaúng laø m vôùi m döông, tröôøng hôïp m <= 1, chuùng ta seõ laáy maãu theo truïc x vôùi ñoä dôøi ∆x=1 vaø tính ñöôïc caùc giaù trò y keá tieáp laø: (6) yk+1 = yk + m Chæ soá k ôû ñaây seõ baét ñaàu baèng 1 cho ñieåm ñaàu tieân vaø taêng daàn cho ñeán khi ñaït ñeán ñieåm keát thuùc. Vì m coù theå laø moät soá thöïc baát kyø naøo ñoù naèm giöõa 0 vaø 1, neân giaù trò töông öùng y phaûi ñöôïc laøm troøn thaønh giaù trò gaàn nhaát thuoäc ñöôøng thaúng. Ñoái vôùi ñöôøng thaúng coù heä soá goùc lôùn hôn 1, chuùng ta seõ ñoåi ngöôïc hai tham soá x vaø y. Nghóa laø chuùng ta seõ laáy maãu theo y vôùi ñoä dôøi ñôn vò (∆y = 1) vaø tính toaùn caùc giaù trò keá tieáp cuûa x nhö sau: 1 xk+1 = xk + (7) m Phöông trình (6) vaø (7) ñöôïc xaây döïng döïa treân cô sôû laø caùc ñöôøng thaúng ñöôïc veõ töø traùi qua phaûi. Neáu quaù trình veõ dieãn ra theo chieàu ngöôïc laïi nghóa laø ñieåm baét ñaàu naèm beân tay phaûi thì ta coù ñoä dôøi ∆x = -1 vaø: yk+1 = yk - m (8) hay khi heä soá goùc lôùn hôn 1, chuùng ta coù ∆y = -1 vôùi 1 (9) xk+1 = xk m Caùc phöông trình töø (6) ñeán (9) cuõng coù theå ñöôïc söû duïng ñeå tính toaùn vò trí cuûa caùc pixel thuoäc ñöôøng thaúng khi heä soá goùc mang giaù trò aâm. Neáu giaù trò tuyeät ñoái cuûa heä soá goùc laø nhoû hôn 1 vaø ñieåm baét ñaàu naèm ôû beân traùi, ta ñaët ∆x = 1 vaø tính toaùn giaù trò cuûa y theo Sinh vieân thöïc hieän: Bieän Coâng Minh - Nguyeãn Xuaân Sôn Trang 20
- Xem thêm -

Tài liệu liên quan