Tuẩn luận ngành Công nghệ thông tin | Trường Đại học Lao động - Xã hội

Tuẩn luận ngành Công nghệ thông tin | Trường Đại học Lao động - Xã hội được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!

TR NG Đ I H C LAO Đ NG – XÃ H IƯỜ
Ngành: Công ngh thông tin
----------o0o----------
BÀI BÁO CÁO
Đ H A MÁY TÍNH
Đ tài: Mô ph ng vẽ đ ng h
Tên sinh viên th c hi n: Nguy n Trung Dũng
Nguy n Vi t Dũng
Nguy n Vi t Nam ế
Đ Quý Long
L p: D17CN04
Gi ng viên h ng d n: ướ V ng Thùy Linhươ
Năm h c 2023 - 2024
M C L C
CH NG 1: GI I THI U V Đ H A MÁY TÍNHƯƠ
1.1.L ch s phát tri n
1.2. Khái ni m đ h a máy tính và các kỹ thu t đ h a
1.2.1. Đ h a máy tính là gì ?
1.2.2. Kỹ thu t đ h a Vector
CH NG 2: GI I THI U Đ TÀIƯƠ
I. N i Dung
1. Các lý thuy t liên quanế
1.1. Các n i dung lý thuy t ế
1.1.1. Thu t toán Bresenham
1.1.2. Thu t toán Midpoint
1.1.3 Thu t toán Bézier
2. Trình bày thu t toán đ c s d ng ượ
2.1 . Thu t toán Bresenham
2.2. Thu t toán Midpoint
3. Ý t ng xây d ng ch ng trìnhưở ươ
CH NG 1: GI I THI U V Đ H A MÁY TÍNHƯƠ
1.1.L ch s phát tri n
- Graphics nh ng năm 1950-1960
+ Năm 1959 Thi t b đ ho đ u tiên màn hình xu t hi n t i Đ c.ế
+ Năm 1960 - SAGE (Semi-Automatic Ground Environment System) xu t
hi n bútsáng thao tác v i màn hình.
+ Năm 1960 William Fetter nhà khoa h c ng i Mỹ, ông đang nghiên c u ườ
xâyd ng mô hình bu ng lái máy bay cho hãng Boeing c a Mỹ. Ông đã d a
trên hình nh 3 chi u c a mô hình ng iphing trong bu ng lái c a ườ
máy bay đ xây d ngnên m t mô hình t i u cho bu ng lái máy bay. ư
Ph ng pháp này cho phép các nhàthi t k quan sát m t cách tr c quan ươ ế ế
v trí c a ng i lái trong khoang. Ông đ t têncho ph ng pháp này là đ ườ ươ
ho máy tính (Computer Graphics) .
+ Mànnh là thi t b thông d ng nh t trong h đ ho , các thao tác c a ế
h u h tcác màn hình đ u d a trên thi t k ng tia âm c c CRT (Cathode ế ế ế
ray tube). Khi đógđ làm t i màn hình là r t cao, máy tính x ươ
ch m, đ t và không ch c ch n(không đáng tin c y).
- Graphics: 1960-1970+ Năm 1963 Ivan Sutherland (h i ngh Fall Joint
Computer - l n đ u tiên có kh năng t o m i, hi n th thay đ i đ c ượ
th c hi n trong th i gian th c trên mànCRT).
+ H th ng này đ c dùng đ thi t k m ch đi n: CRT, LightPen (bút ượ ế ế
sáng),computer (ch a ch ng trình x lý thông tin). Ng i s d ng ươ ườ
th vẽ m ch đi ntr c ti p lên màn hình thông qua bút sáng. ế
- Graphics:1970-1980+ Raster Graphics (đ ho đi m). B t đ u chu n
đ ho ví d nh : GKS(GraphicsKernel System): European effort (k t qu ư ế
c a châu âu), Becomes ISO 2D standard.
- Graphics: 1980-1990+ M c đích đ c bi t v ph n c ng, thi t b hình ế
h c đ ho Silicon. Xu t hi n cácchu n công nghi p: PHIGS
(Programmers Hierarchical Interactive GraphicsStandard) xác đ nh các
ph ng pháp chu n cho các mô hình th i gian th c và l ptrình h ng ươ ướ
đ i t ng. ượ
+ Giao di n ng i máy Human-Computer Interface (HCI) ườ
- Computer Graphics: 1990-2000
+ OpenGL API (Application Program Interface – giao di n ch ng trình ươ
ngd ng).
+ Completely computer-sinh ra ngành đi n nh phim truy n (Toy Story)
r t thànhcông. Các ti m tàng ph n c ng m i: Texture mapping (dán các
nh c a c nh th tlên b m t c a đ i t ng),blending (tr n màu).... ượ
- Computer Graphics: 2000- nay
+ nh hi n th c, các c c đ ho cho máy tính (Graphics cards for PCs),
gameboxes and game players.
+ Công nghi p phim nh nh vào đ ho máy tính (Computer graphics
becomingroutine in movie industry): Maya (th gi i v t ch t tri giác ế
đ c)....ượ
1.2. Khái ni m đ h a máy tính và các kỹ thu t đ h a
1.2.1. Đ h a máy tính là gì ?
- Đ h a máy tính là m t ngành khoa h c Tin h c chuyên nghiên c u v
cácph ng pháp và kỹ thu t đ có th mô t và thao tác trên các đ i t ngươ ượ
c a th gi ith c b ng máy tính ế
- V b n ch t: đó là m t quá trình xây d ng và phát tri n các công c trên
c hailĩnh v c ph n c ng và ph n m m h tr cho các l p trình viên thi t ế
k các ch ngtrình có kh năng đ h a cao.ế ươ
- V i vi c mô t d li u thông qua các hình nh và màu s c đa d ng c a
nó, cácch ng trình đ h a th ng thu hút ng i s d ng b i tính thân ươ ườ ườ
thi n, d dùng,...kích thích kh năng sáng t o và nâng cao năng su t làm
vi c.
+ Các mô hình hình nh đ c hi n th nh m t l i đi m (grid) các pixel ượ ư ướ
r i r c,
+ T ng pixel đ u có v trí xác đ nh, đ c hi n th v i m t giá tr r i r c ượ
(s nguyên) các thông s hi n th (màu s c ho c đ sáng)
+ T p h p t t c các pixel c a grid cho chúng ta mô hình, hình nh đ i
t ng mà chúng ta mu n hi n th .ượ
- Ph ng pháp đ t o ra các pixel: ươ
+ Ph ng pháp dùng ph n m m đ vẽ tr c ti p t ng pixel m t.ươ ế
+ D a trên các lý thuy t mô ph ng (lý thuy t Fractal, v.v) đ xây d ng nên ế ế
hình nh mô ph ng c a s v t.
+ Ph ng pháp r i r c hoá (s hoá) hình nh th c c a đ i t ng. ươ ư
+ Có th s a đ i (image editing) ho c x lý (image processing) m ng các
pixel thuđ c theo nh ng ph ng pháp khác nhau đ thu đ c hình nh ượ ươ ượ
đ c tr ng c a đ it ng. ư ượ
1.2.2. Kỹ thu t đ h a Vector
- Xây d ng mô hình hình h c cho hình nh đ i t ng, xác đ nh các thu c ượ
tính c amô hình hình h c, sau đó d a trên mô hình này đ th c hi n quá
trình tô trát đ hi n th t ng đi m c a mô hình, hình nh c a đ i t ng. ượ
- Kỹ thu t này ch l u tr mô hình toán h c c a các thành ph n trong mô ư
hình hìnhh c cùng v i các thu c tính t ng ng mà không c n l u l i toàn ươ ư
b t t c cácpixel c a hình nh đ i t ng. ượ
+ Các mô hình hình nh đ c hi n th nh m t l i đi m (grid) các pixel ượ ư ướ
r i r c,
+ T ng pixel đ u có v trí xác đ nh, đ c hi n th v i m t giá tr r i r c ượ
(s nguyên) các thông s hi n th (màu s c ho c đ sáng)
+ T p h p t t c các pixel c a grid cho chúng ta mô hình, hình nh đ i
t ng mà chúng ta mu n hi n th .ượ
- Ph ng pháp đ t o ra các pixel:ươ
+ Ph ng pháp dùng ph n m m đ vẽ tr c ti p t ng pixel m t. ươ ế
+ D a trên các lý thuy t mô ph ng (lý thuy t Fractal, v.v) đ y d ng nên ế ế
hình nh mô ph ng c a s v t.
+ Ph ng pháp r i r c hoá (s hoá) hình nh th c c a đ i t ng.ươ ượ
+ Có th s a đ i (image editing) ho c x lý (image processing) m ng các
pixel thuđ c theo nh ng ph ng pháp khác nhau đ thu đ c hình nh ượ ươ ượ
đ c tr ng c a đ it ng. ư ượ
1.2.2. Kỹ thu t đ h a Vector
- Xây d ng mô hình hình h c cho hình nh đ i t ng, xác đ nh các thu c ượ
tính c a mô hình hình h c, sau đó d a trên mô hình này đ th c hi n quá
trình tô trát đ hi n th t ng đi m c a mô hình, hình nh c a đ i t ng. ượ
- Kỹ thu t này ch l u tr mô hình toán h c c a các thành ph n trong mô ư
hình hìnhh c cùng v i các thu c tính t ng ng mà không c n l u l i toàn ươ ư
b t t c cácpixel c a hình nh đ i t ng. ượ
- So sánh gi a Đ h a đi m và Đ h a Vector:
• C u thành:
Đ h a vector s d ng các công th c và hình h c đ xác đ nh các
đi m, đ ng và vùng trong hình nh. ườ
Có th phóng to mà không làm m t đi ch t l ng vì không d a trên pixel. ượ
• M c đích s d ng:
Thích h p cho các bi u đ , logo, bi u đ và các hình nh ch a các
hình d ng đ n gi n. ơ
• M r ng hình nh:
Có th phóng to mà không làm m t đi đ nét và chi ti t c a hình nh. ế
• Dung l ng t p tin:ượ
Th ng nh h n so v i hình nh đ h a đi m vì nó ch l u tr ườ ơ ư
thông tin v các đi m và hình d ng.
CH NG 2: GI I THI U Đ TÀIƯƠ
Vi c vẽ mô ph ng đ ng h b ng mã l p trình là m t đ tài thú v và sáng
t o trong lĩnh v c công ngh thông tin. Đ ng h không ch là m t thi t b ế
đ đo th i gian mà còn là m t bi u t ng c a th m mỹ và s s p x p. ượ ế
Thông qua mã l p trình, chúng ta có th t o ra nh ng mô ph ng đ ng h
s ho c đ ng h c v i đ chính xác và tính năng đa d ng. ơ
Đ th c hi n đ tài này, chúng ta s d ng các ngôn ng l p trình nh ư
JavaScript, Python ho c C++, cùng v i các th vi n đ h a nh Canvas ư ư
ho c Pygame. Chúng ta có th t o ra các đ ng h kỹ thu t s hi n đ i,
đ ng h c v i các bánh răng và kim đ ng h ho t đ ng, hay th m chí là ơ
nh ng đ ng h đ c đáo v i hi u ng đ c bi t.
Vi c vẽ mô ph ng đ ng h không ch là vi c hi n th th i gian mà còn thúc
đ y s sáng t o và kh năng t ng tác v i ng i dùng. Chúng ta có th t o ươ ườ
ra các tính năng b sung nh báo th c, đ ng h đ m ng c, ho c th m chí ư ế ượ
là tích h p v i các d án khác nh ng d ng đo th d c ho c IoT. ư
V i s phát tri n không ng ng c a công ngh , vi c vẽ mô ph ng đ ng h
dùng mã l p trình không ch giúp chúng ta hi u rõ h n v cách th i gian ơ
đ c đo và theo dõi, mà còn mang l i s thú v và thách th c trong vi c ượ
khai thác ti m năng sáng t o c a l p trình viên. Đây là m t đ tài thú v
đa d ng có th khám phá và phát tri n trong th gi i kỹ thu t s ngày nay. ế
Phân công công vi c c a các thành viên
Nguy n Trung Dũng
Nguy n Vi t Dũng
Nguy n Vi t Nam ế
Đ Quý Long
I. N i Dung
1. Các lý thuy t liên quanế
1.1 . Các n i dung lý thuy t ế
Khái ni m hình tròn
Hình tròn là m t hình hai chi u khép kín có t t c các đi m trên hình
cách đ u tâm m t kho ng.
Vẽ hình tròn trong đ h a máy tính là quá trình t o ra m t hình tròn trên
màn hình máy tính.
Các thu t toán vẽ hình tròn
Có nhi u thu t toán khác nhau có th đ c s d ng đ vẽ hình tròn trong ượ
đ h a máy tính. M t s thu t toán ph bi n bao g m:ế
Thu t toán Bresenham
Thu t toán Midpoint
Thu t toán Bézier
1.1.1.Thu t toán Bresenham
Thu t toán Bresenham là thu t toán vẽ hình tròn đ n gi n nh t. ơ
Thu t toán này ho t đ ng b ng cách b t đ u t tâm hình tròn và vẽ
các đi m trên đ ng tròn theo m t h ng nh t đ nh. ườ ướ
u đi m:Ư
Đ n gi n, d hi u và d th c hi nơ
Nhanh chóng, hi u qu .
Nh c đi m:ượ
Đ chính xác th p, đ c bi t là các góc
1.1.2.Thu t toán Midpoint
Thu t toán Midpoint c i thi n đ chính xác c a thu t toán
Bresenham b ng cách s d ng m t ph ng pháp chia đôi ươ kho ng
cách. Thu t toán này ho t đ ng b ng cách b t đ u t tâm hình tròn
và vẽ các đi m trên đ ng tròn theo ườ
m t h ng nh t đ nh, theo h ng đi c a góc ti p theo. ướ ướ ế
u đi m:Ư
Đ chính xác cao h n thu t toán Bresenham ơ
V n khá nhanh chóng và hi u qu
Nh c đi m:ượ
Ph c t p h n thu t toán Bresenham ơ
1.1.3.Thu t toán Bézier
Thu t toán Bézier s d ng các đ ng cong Bézier đ vẽ hình tròn. Các ườ
đ ng cong Bézier là các đ ng cong tr n,ườ ườ ơ m m m i h n các đ ng ơ ườ
th ng.
u đi m:Ư
Đ chính xác cao nh t
Đ ng tròn đ c vẽ r t m t mà, không có hi n t ng răng c aườ ượ ượ ượ ư
Nh c đi m:ượ
Ph c t p nh t trong các thu t toán vẽ hình tròn
2. Trình bày thu t toán đ c s d ng ượ
2.1. Thu t toán Bresenham
Thu t toán Bresenham là thu t toán vẽ hình tròn đ n gi n nh t. Thu t ơ
toán này b t đ u t tâm hình tròn và s d ng m t công th c đ n gi n đ ơ
tính toán đi m ti p theo trên đ ng tròn. ế ườ
Công th cnh toán đi m ti p theo trên đ ng tròn nh sau: ế ườ ư
x = x_c + r * cos(t)
y = y_c + r * sin(t)
Trong đó:
x_c và y_ct a đ tâm hình trò
r là bán kính hình tròn
t là góc c a đi m ti p theo trên đ ng tròn ế ườ
Thu t toán Bresenham ho t đ ng nh sau: ư
1. Kh i t o các bi n x, y, x_inc, y_inc, và t. ế
2. Đ t x = x_c và y = y_c.
3. Tính t = 0.
4. L p l i các b c 5 đ n 7 cho đ n khi t >= 360. ướ ế ế
5. Tính x_inc = 1 if (x < x_c + r) else -1.
6. Tính y_inc = 1 if (y < y_c + r) else -1.
7. Vẽ đi m (x, y) trên màn hình.
8. Tăng t = t + 1.
2.2. Thu t toán Midpoint
Thu t toán Midpoint c i thi n đ chính xác c a thu t toán Bresenham
b ng cách s d ng m t ph ng pháp chia đôi kho ng cách. Thu t toán này ươ
b t đ u t tâm hình tròn và s d ng m t công th c đ tính toán đi m ti p ế
theo trên đ ng tròn.ườ
Công th c tính toán đi m ti p theo trên đ ng tròn nh sau: ế ườ ư
2. x = x_c + r * (2 * t / 360)
3. y = y_c + r * sqrt(3) * (1 - t * t / 900)
Trong đó:
x_c và y_c là t a đ tâm hình trò
r là bán kính hình tròn
t là góc c a đi m ti p theo trên đ ng trò ế ườ
Thu t toán Midpoint ho t đ ng nh sau: ư
1. Kh i t o các bi n x, y, và t. ế
2. Đ t x = x_c và y = y_c.
3. Đ t t = 0.
4. L p l i các b c 5 đ n 7 cho đ n khi t >= 360. ướ ế ế
5. Tính x = x_c + r * (2 * t / 360).
6. Tính y = y_c + r * sqrt(3) * (1 - t * t / 900).
7. Vẽ đi m (x, y) trên màn hình.
8. Tăng t = t + 1.
Ph n ch y ch ng trình b ng codebooks và gi i thi u v ươ
codebooks
1. Code::Blocks là gì?
Đây là môi trường phát triển tích hợp (IDE) miễn phí được xây dựng để đáp ứng các
nhu cầu khắt khe nhất của người dùng trong lập trình các phần mềm được viết bằng
ngôn ngữ C, C++ hoặc Fortran. Nó có thể hoạt động được trên nhiều nền tảng như
MacOS, Linux hoặc Windows và hỗ trợ nhiều trình biên dịch như MS Visual C++ và
GNU GCC.
Bên cạnh đó, Code::Blocks còn có giao diện thân thiện, tổ hợp tính năng đa dạng và
có thể dễ dàng thêm các tính năng mới. Điều này có được là do thiết kế trên khung
plugin cho phép FDE này mở rộng tính năng bằng cách cài đặt hoặc viết các mã
plugin. Ví dụ như chức năng biên dịch và gỡ lỗi trên Code::Blocks được bổ sung bởi
các plugin.
2. H ng d n cài đ t Code::Blocksướ
2.1. B c 1: T i Code::Blocksướ
Truy c p đ ng link: http://www.codeblocks.org/downloads. Nh n ườ
ch n “Download the binary release”
Ch n n n t ng đang ho t đ ng c a b n (có 3 s l a ch n là
Windows XP / Vista / 7 / 8.x / 10, Linux 32 and 64-bit và Mac OS X).b
T i xu ng cài đ t v i trình biên d ch GCC. b
2.2. B c 2: Cài đ t Code::Blocksướ
Ch y cài đ t đã t i và ch p nh n các tùy ch n m c đ nh
Xác minh đ ng d n c a trình biên d ch và trình g l iườ
Ví d v i Code::Blocks 13.12 cho Windows: b
Vào menu Settings, ch n Compiler…. T i Selected Compiler, b n nh n ch n
GNU GCC Compiler và ch n tab Toolchain Executables. Sau đó ki m tra
m c Compiler’s Installation Directory. b
Nó sẽ đ c đ t thành th m c ph có tên MinGW c a th m c cài đ t ượ ư ư
Code::Blocks. Gi s n u Code::Blocks đ c cài đ t trong C d i d ng ế ượ ướ
v i đ ng d n c: \ Program Files \ codeblocks, b n hãy chuy n nó thành ườ
c:\Program Files\codeblocks\MinGW.b
Áp d ng cách ki m tra t ng t v i trình g l i. B n cũng ch n GDB/CDB ươ
debugger trong m c Debugger…: t i menu Settings và nh n vào Default.
T i m c Executable path, b n nh p tên đ ng d n đâỳ đ c a gdb.exe, ườ
ch ng h n nh c : \ Program Files \ codeblocks \ MinGW \ bin \ gdb.exe . ư b
Cài đ t thành công Code::Blocks
3. G i ý cách vi t ch ng trình C/C++ trong Code::Blocks ế ươ
Sau khi đã cài đ t Code::Blocks cho máy tính, vi c ti p theo là hãy th t o ế
m t d án cho t ng ng d ng c a b n. b
M t d án thông th ng sẽ bao g m nh ng t p có liên quan nh các mã ườ ư
ngu n, t p tiêu đ và m t s tài nguyên khác. B n hãy ti n hành theo các ế
b c sau:ướ b
Ch n File -> New -> Project…Thông th ng b n nên ch n Console ườ
Application cho d án đ u tiên c a mình. Sau đó nh n Go. b
Khi trình h ng d n Console Application hi n ra, b n nh n Next -> ướ
C++ -> Next. Trong m c Project Title, b n nh p HelloProject. Trong
m c Folder to create project in, đ t thành th m c đang ho t đ ng ư
c a b n, ví d nh d:\project. Ch n ch p nh n t t c ph n còn l i ư
và nh n Next. b
Lúc này, th m c d án Hello Project sẽ xu t hi n trong D, m c project ư
v i tên HelloProject.cbp. B n có th ti p t c t o thêm các d án m i trong ế
th m c project này.ư b
Trong tr ng Compiler, ch p nh n tùy ch n m c đ nh c a GNU GCC ườ
Compiler và nh n k t thúc. ế b
Trong ph n Management, ch n tab Projects -> m r ng nút d án
Hello Project -> m r ng nút Source. Kích đúp chu t vào main.cpp. b
Đ t o ch ng trình, ch n Build trong menu Build ươ
Đ ch y ch ng trình, ươ ch n Run trong menu Build
3. Ph l c: S d ng các th vi n nào c a OpenLG; Code ch ng ư ươ
trình
1. Khai báo Thư viện và Định nghĩa:
Chương trình sử dụng các thư viện cần thiết cho đồ họa và nhập/xuất chuẩn.
#define PI 3.14159265359 định nghĩa hằng số PI.
2.Hàm :tinhgoc
Hàm này chuyển đổi góc từ độ sang radian.
3.Hàm :vekhung
Hàm này vẽ mặt đồng hồ với các vòng tròn đồng tâm và các đánh dấu.
4.Các Hàm , , :kimgiay kimphut kimgio
Các hàm này vẽ kim giây, kim phút và kim giờ của đồng hồ, tương ứng.
4. Hàm :vekim
Hàm này liên tục cập nhật vị trí của kim giờ, kim phút và kim giây dựa trên các
góc ( , , ) và vẽ chúng lại.d1 d2 d3
5. Hàm :gocdau
Hàm này tính toán các góc khởi đầu ( , , ) cho kim giờ, kim phút và kim d1 d2 d3
giây dựa trên thời gian đầu vào.
6. Hàm :main
Hàm khởi tạo cửa sổ đồ họa, vẽ mặt đồng hồ và liên tục cập nhật vị trí kim main
đồng hồ.
7. Nhập dữ liệu từ Người Dùng:
Người dùng được yêu cầu nhập giờ, phút và giây.
Chương trình này sử dụng thư viện graphics.h để tạo một đồng hồ đơn giản với
kim giờ, kim phút và kim giây. Các kim được liên tục cập nhật dựa trên thời
gian hiện tại và cửa sổ đồ họa sẽ đóng khi người dùng thoát khỏi chương trình.
4.Kết quả thực hiện đề tài
Ch ng trình trê cho phép chúng ta nh p s gi s phút s giây mà ươ
mình mong mu n đ đ ng h b t đ u ch y
Đây là sau khi chúng ta nh p d li u và cho phép đ ng h b t đ u
ch y
TÀI LI U THAM KH O
Google……………………………………………………………………………
Bing………………………………………………………………………………
Coccoc……………………………………………………………………………
Edge………………………………………………………………………………
| 1/18

Preview text:

TR N ƯỜ G ĐẠI H C Ọ LAO Đ N Ộ G – XÃ H I Ngành: Công ngh ệ thông tin ----------o0o---------- BÀI BÁO CÁO Đ Ồ H A Ọ MÁY TÍNH Đ  tài: Mô ph n ỏ g vẽ đ n ồ g hồ Tên sinh viên th c ự hi n ệ : Nguy n ễ Trung Dũng Nguy n ễ Việt Dũng Nguy n ễ Viết Nam Đ ỗ Quý Long L p ớ : D17CN04 Gi n ả g viên h n ướ g d n
ẫ : Vương Thùy Linh Năm h c ọ 2023 - 2024 MỤC LỤC CH N
ƯƠ G 1: GIỚI THIỆU V Ề Đ Ồ HỌA MÁY TÍNH 1.1.L c ị h s ử phát tri n 1.2. Khái ni m ệ đ ồ h a
ọ máy tính và các kỹ thu t ậ đ ồ h a 1.2.1. Đ ồ h a
ọ máy tính là gì ? 1.2.2. Kỹ thu t ậ đ ồ h a ọ Vector CH N
ƯƠ G 2: GIỚI THIỆU Đ Ề TÀI I. N i ộ Dung 1. Các lý thuy t ế liên quan 1.1. Các n i ộ dung lý thuy t ế 1.1.1. Thu t ậ toán Bresenham 1.1.2. Thu t ậ toán Midpoint 1.1.3 Thu t ậ toán Bézier 2. Trình bày thu t ậ toán đ c ượ s ử d n ụ g 2.1 . Thu t ậ toán Bresenham 2.2. Thu t ậ toán Midpoint 3. Ý t n ưở g xây d n ự g ch n ươ g trình CH N
ƯƠ G 1: GIỚI THIỆU V Ề Đ Ồ HỌA MÁY TÍNH 1.1.L c ị h s ử phát tri n - Graphics nh n ữ g năm 1950-1960 + Năm 1959 Thi t ế bị đ ồ ho ạ đ u ầ tiên là màn hình xu t ấ hi n ệ t i ạ Đ c ứ .
+ Năm 1960 - SAGE (Semi-Automatic Ground Environment System) xu t ấ hiện bútsáng thao tác v i ớ màn hình.
+ Năm 1960 William Fetter nhà khoa h c ọ ng i
ườ Mỹ, ông đang nghiên c u ứ xâydựng mô hình bu n
ồ g lái máy bay cho hãng Boeing c a ủ Mỹ. Ông đã d a ự trên hìnhảnh 3 chiều c a ủ mô hình ng i ườ phi công trong bu n ồ g lái c a ủ máy bay đ ể xây d n ự gnên m t ộ mô hình t i ố u ư cho bu n ồ g lái máy bay.
Phương pháp này cho phép các nhàthi t ế k ế quan sát m t ộ cách tr c ự quan vị trí c a
ủ người lái trong khoang. Ông đ t ặ têncho ph n ươ g pháp này là đ ồ
hoạ máy tính (Computer Graphics) . + Màn hình là thi t ế b ịthông d n ụ g nh t ấ trong h ệ đ ồ ho , ạ các thao tác c a ủ
hầu hếtcác màn hình đ u ề d a ự trên thi t ế k ế n ố g tia âm c c ự CRT (Cathode ray tube). Khi đógiá đ ể làm t i ươ màn hình là r t ấ cao, máy tính x ử lý ch m ậ , đ t ắ và không ch c ắ ch n ắ (không đáng tin c y ậ ).
- Graphics: 1960-1970+ Năm 1963 Ivan Sutherland (h i ộ ngh ịFall Joint Computer - l n ầ đ u ầ tiên có kh n ả ăng t o ạ m i ớ , hi n ể th ịvà thay đ i ổ đ c ượ th c ự hiện trong th i ờ gian th c ự trên mànCRT). + H ệ th n ố g này được dùng đ ể thi t ế k ế m c ạ h đi n ệ : CRT, LightPen (bút sáng),computer (ch a ứ chư n ơ g trình x ử lý thông tin). Ng i ườ s ử d n ụ g có th ể vẽ m c ạ h đi n ệ tr c ự ti p
ế lên màn hình thông qua bút sáng.
- Graphics:1970-1980+ Raster Graphics (đ ồ ho ạ đi m ể ). B t ắ đ u ầ chu n ẩ đ ồ hoạ ví d
ụ như: GKS(GraphicsKernel System): European effort (k t ế quả
của châu âu), Becomes ISO 2D standard. - Graphics: 1980-1990+ M c ụ đích đ c ặ bi t ệ v ề ph n ầ c n ứ g, thi t ế b ịhình h c ọ đ ồ ho ạ Silicon. Xu t ấ hi n ệ cácchu n ẩ công nghi p ệ : PHIGS
(Programmers Hierarchical Interactive GraphicsStandard) xác đ n ị h các phương pháp chu n ẩ cho các mô hình th i ờ gian th c ự và l p ậ trình h n ướ g đ i ố tượng. + Giao di n ệ ng i
ườ máy Human-Computer Interface (HCI) - Computer Graphics: 1990-2000
+ OpenGL API (Application Program Interface – giao di n ệ ch n ươ g trình n ứ gd n ụ g).
+ Completely computer-sinh ra ngành đi n ệ n ả h phim truy n ệ (Toy Story)
rất thànhcông. Các tiềm tàng ph n ầ c n ứ g m i
ớ : Texture mapping (dán các n ả h c a ủ cảnh th t ậ lên b ề m t ặ c a ủ đ i ố t n ượ g),blending (tr n ộ màu). . - Computer Graphics: 2000- nay + n Ả h hi n ệ th c ự , các c c ạ đ ồ ho
ạ cho máy tính (Graphics cards for PCs), gameboxes and game players. + Công nghi p ệ phim n ả h nh ờ vào đ ồ ho
ạ máy tính (Computer graphics
becomingroutine in movie industry): Maya (th ế gi i ớ v t ậ ch t ấ tri giác đ c ượ ). . 1.2. Khái ni m ệ đ ồ h a
ọ máy tính và các kỹ thu t ậ đ ồ h a 1.2.1. Đ ồ h a
ọ máy tính là gì ? - Đồ h a ọ máy tính là m t ộ ngành khoa h c ọ Tin h c ọ chuyên nghiên c u ứ v ề cácph n ươ g pháp và kỹ thu t ậ đ ể có th ể mô t
ả và thao tác trên các đ i ố t n ượ g c a ủ th ế gi i ớ thực b n ằ g máy tính - V ề b n ả ch t ấ : đó là m t ộ quá trình xây d n ự g và phát tri n ể các công c ụ trên cả hailĩnh v c ự ph n ầ c n ứ g và ph n ầ mềm h ổ tr ợ cho các l p ậ trình viên thi t ế kế các ch n ươ gtrình có kh ả năng đ ồ h a ọ cao. - V i ớ vi c ệ mô t ả d ữ li u ệ thông qua các hình n ả h và màu s c ắ đa d n ạ g c a ủ nó, cácch n ươ g trình đồ h a ọ th n ườ g thu hút ng i ườ s ử d n ụ g b i ở tính thân thi n ệ , d ể dùng,. .kích thích kh ả năng sáng t o ạ và nâng cao năng su t ấ làm việc. + Các mô hình hình n ả h đ c ượ hi n ể th ịnh ư m t ộ l i ướ đi m ể (grid) các pixel r i ờ r c ạ , + T n ừ g pixel đ u ề có v ịtrí xác đ n ị h, đ c ượ hi n ể th ịv i ớ m t ộ giá tr ịr i ờ r c ạ (sốnguyên) các thông s ố hi n ể th ị(màu s c ắ ho c ặ đ ộ sáng) + T p ậ h p ợ tất cả các pixel c a
ủ grid cho chúng ta mô hình, hình n ả h đ i ố t n ượ g mà chúng ta mu n ố hi n ể th .ị - Ph n
ươ g pháp để tạo ra các pixel: + Ph n ươ g pháp dùng ph n ầ m m ề đ ể vẽ tr c ự ti p ế t n ừ g pixel m t ộ . + D a ự trên các lý thuy t ế mô ph n ỏ g (lý thuy t ế Fractal, v.v) đ ể xây d n ự g nên hình n ả h mô ph n ỏ g của s ự v t ậ . + Phương pháp r i ờ r c ạ hoá (s ố hoá) hình n ả h th c ự c a ủ đ i ố tư n ợ g. + Có thể s a ử đ i ổ (image editing) ho c ặ x ử lý (image processing) m n ả g các pixel thuđ c ượ theo nh n ữ g ph n ươ g pháp khác nhau đ ể thu đ c ượ hình n ả h đ c ặ tr n ư g của đ i ố tư n ợ g. 1.2.2. Kỹ thu t ậ đ ồ h a ọ Vector - Xây d n ự g mô hình hình h c ọ cho hình n ả h đối t n ượ g, xác đ n ị h các thu c ộ tính c a ủ mô hình hình h c ọ , sau đó d a ự trên mô hình này đ ể th c ự hi n ệ quá trình tô trát đ h ể i n ể th ịt n ừ g đi m ể c a ủ mô hình, hình n ả h c a ủ đ i ố t n ượ g. - Kỹ thu t ậ này ch ỉl u ư tr ữ mô hình toán h c ọ c a ủ các thành ph n ầ trong mô hình hìnhh c ọ cùng v i ớ các thu c ộ tính t n ươ g n ứ g mà không c n ầ l u ư l i ạ toàn b ộ t t ấ c ả cácpixel c a ủ hình n ả h đ i ố t n ượ g. + Các mô hình hình n ả h đ c ượ hi n ể th ịnh ư m t ộ l i ướ đi m ể (grid) các pixel r i ờ r c ạ , + T n ừ g pixel đ u ề có v ịtrí xác đ n ị h, đ c ượ hi n ể th ịv i ớ m t ộ giá tr ịr i ờ r c ạ (sốnguyên) các thông s ố hi n ể th ị(màu s c ắ ho c ặ đ ộ sáng) + T p ậ h p ợ tất cả các pixel c a
ủ grid cho chúng ta mô hình, hình n ả h đ i ố t n ượ g mà chúng ta mu n ố hi n ể th .ị - Ph n
ươ g pháp để tạo ra các pixel: + Ph n ươ g pháp dùng ph n ầ m m ề đ ể vẽ tr c ự ti p ế t n ừ g pixel m t ộ .
+ Dựa trên các lý thuyết mô ph n
ỏ g (lý thuyết Fractal, v.v) đ ể xây d n ự g nên hình n ả h mô ph n ỏ g của s ự v t ậ . + Ph n ươ g pháp r i ờ r c ạ hoá (s ố hoá) hình n ả h th c ự c a ủ đ i ố t n ượ g. + Có thể s a ử đ i ổ (image editing) ho c ặ x ử lý (image processing) m n ả g các pixel thuđ c ượ theo nh n ữ g ph n ươ g pháp khác nhau đ ể thu đ c ượ hình n ả h đ c ặ tr n ư g của đ i ố tư n ợ g. 1.2.2. Kỹ thu t ậ đ ồ h a ọ Vector - Xây d n ự g mô hình hình h c ọ cho hình n ả h đối t n ượ g, xác đ n ị h các thu c ộ tính c a ủ mô hình hình h c ọ , sau đó d a ự trên mô hình này đ ể th c ự hi n ệ quá trình tô trát đ ể hiển thị t n ừ g đi m ể c a ủ mô hình, hình n ả h c a ủ đ i ố t n ượ g.
- Kỹ thuật này ch ỉlưu tr ữ mô hình toán h c ọ c a ủ các thành ph n ầ trong mô hình hìnhh c ọ cùng v i ớ các thu c ộ tính t n ươ g n ứ g mà không c n ầ l u ư l i ạ toàn b ộ t t ấ c ả cácpixel c a ủ hình n ả h đ i ố t n ượ g. - So sánh giữa Đ ồ h a ọ đi m ể và Đ ồ h a ọ Vector: • Cấu thành: Đ ồ họa vector s ử d n ụ g các công th c ứ và hình h c ọ đ ể xác đ n ị h các điểm, đ n
ườ g và vùng trong hình n ả h.
Có thể phóng to mà không làm m t ấ đi ch t ấ l n ượ g vì không d a ự trên pixel. • M c ụ đích s ử dụng: Thích h p ợ cho các bi u ể đ , ồ logo, bi u ể đ ồ và các hình n ả h ch a ứ các hình d n ạ g đ n ơ gi n ả . • M ở r n ộ g hình n ả h:
Có thể phóng to mà không làm m t ấ đi đ ộ nét và chi ti t ế c a ủ hình n ả h. • Dung l n ượ g t p ậ tin: Th n ườ g nh ỏ h n ơ so v i ớ hình n ả h đ ồ họa đi m ể vì nó ch ỉl u ư tr ữ thông tin v ề các đi m ể và hình d n ạ g. CH N ƯƠ G 2: GI I Ớ THI U Ệ Đ Ề TÀI Vi c ệ vẽ mô ph n ỏ g đ n ồ g h ồ b n ằ g mã l p ậ trình là m t ộ đ ề tài thú v ịvà sáng t o ạ trong lĩnh v c ự công ngh ệ thông tin. Đ n ồ g h ồ không ch ỉlà m t ộ thi t ế b ị đ ể đo th i ờ gian mà còn là m t ộ bi u ể t n ượ g c a ủ th m ẩ mỹ và s ự s p ắ x p ế . Thông qua mã l p ậ trình, chúng ta có th ể t o ạ ra nh n ữ g mô ph n ỏ g đ n ồ g h ồ số hoặc đồng h ồ c ơ v i ớ đ
ộ chính xác và tính năng đa d n ạ g. Để th c ự hi n ệ đ ề tài này, chúng ta s ử d n ụ g các ngôn ng ữ l p ậ trình nh ư JavaScript, Python ho c ặ C++, cùng v i ớ các th ư vi n ệ đ ồ h a ọ nh ư Canvas
hoặc Pygame. Chúng ta có th ể t o ạ ra các đ n ồ g h ồ kỹ thu t ậ s ố hi n ệ đ i ạ , đồng h ồ c
ơ với các bánh răng và kim đ n ồ g h ồ ho t ạ đ n ộ g, hay th m ậ chí là nh n ữ g đ n ồ g h ồ đ c ộ đáo v i ớ hiệu n ứ g đ c ặ bi t ệ . Vi c ệ vẽ mô ph n ỏ g đ n ồ g h ồ không ch ỉlà vi c ệ hi n ể th ịth i ờ gian mà còn thúc đẩy sự sáng t o ạ và kh ả năng t n ươ g tác v i ớ ng i ườ dùng. Chúng ta có th ể t o ạ ra các tính năng b ổ sung nh ư báo th c ứ , đ n ồ g h ồ đ m ế ng c ượ , ho c ặ th m ậ chí là tích h p ợ với các d ự án khác nh ư n ứ g d n ụ g đo th ể d c ụ ho c ặ IoT. V i ớ sự phát tri n ể không ng n ừ g c a ủ công ngh , ệ vi c ệ vẽ mô ph n ỏ g đ n ồ g h ồ dùng mã l p
ậ trình không ch ỉgiúp chúng ta hi u ể rõ h n ơ v ề cách th i ờ gian đ c
ượ đo và theo dõi, mà còn mang l i ạ s ự thú v ịvà thách th c ứ trong vi c ệ
khai thác tiềm năng sáng t o ạ c a ủ l p
ậ trình viên. Đây là m t ộ đ ề tài thú v ịvà đa d n ạ g có th ể khám phá và phát tri n ể trong th ế gi i ớ kỹ thu t ậ s ố ngày nay. Phân công công việc c a ủ các thành viên Nguy n ễ Trung Dũng Nguy n ễ Vi t ệ Dũng Nguy n ễ Vi t ế Nam Đ ỗ Quý Long I. N i ộ Dung 1. Các lý thuy t ế liên quan 1.1 . Các n i ộ dung lý thuy t ế Khái niệm hình tròn Hình tròn là m t ộ hình hai chi u ề khép kín có t t ấ c ả các đi m ể trên hình cách đ u ề tâm m t ộ kho n ả g. Vẽ hình tròn trong đ ồ h a
ọ máy tính là quá trình t o ạ ra m t ộ hình tròn trên màn hình máy tính. Các thu t ậ toán vẽ hình tròn Có nhi u ề thu t ậ toán khác nhau có th ể đ c ượ s ử d n ụ g đ ể vẽ hình tròn trong đ ồ h a ọ máy tính. M t ộ s ố thu t ậ toán phổ bi n ế bao g m ồ :  Thu t ậ toán Bresenham  Thu t ậ toán Midpoint  Thu t ậ toán Bézier 1.1.1.Thu t ậ toán Bresenham
Thuật toán Bresenham là thu t
ậ toán vẽ hình tròn đ n ơ gi n ả nh t ấ . Thu t ậ toán này ho t ạ đ n ộ g b n ằ g cách b t ắ đ u ầ t ừ tâm hình tròn và vẽ các đi m ể trên đ n ườ g tròn theo m t ộ h n ướ g nh t ấ đ n ị h. Ưu đi m ể :  Đơn gi n ả , d ễ hi u ể và d ễ thực hi n ệ  Nhanh chóng, hi u ệ qu . ả Nhược điểm:  Độ chính xác th p ấ , đ c ặ biệt là ở các góc 1.1.2.Thu t ậ toán Midpoint Thuật toán Midpoint c i ả thi n ệ đ ộ chính xác c a ủ thu t ậ toán Bresenham b n ằ g cách s ử d n ụ g m t ộ ph n ươ g pháp chia đôi kho n ả g cách. Thu t ậ toán này ho t ạ đ n ộ g b n ằ g cách b t ắ đ u ầ t ừ tâm hình tròn và vẽ các đi m ể trên đ n ườ g tròn theo một h n ướ g nh t ấ định, theo h n ướ g đi c a ủ góc ti p ế theo. Ưu đi m ể :  Độ chính xác cao h n ơ thu t ậ toán Bresenham  V n ẫ khá nhanh chóng và hi u ệ quả Nhược điểm:  Phức t p ạ hơn thu t ậ toán Bresenham 1.1.3.Thu t ậ toán Bézier Thu t ậ toán Bézier s ử d n ụ g các đ n ườ g cong Bézier đ ể vẽ hình tròn. Các
đường cong Bézier là các đ n ườ g cong tr n ơ , m m ề m i ạ h n ơ các đ n ườ g th n ẳ g. Ưu đi m ể :  Độ chính xác cao nh t ấ  Đường tròn đư c ợ vẽ r t ấ mư t ợ mà, không có hi n ệ t n ượ g răng c a ư Nhược điểm:  Phức t p ạ nh t
ấ trong các thuật toán vẽ hình tròn 2. Trình bày thu t ậ toán đ c ượ s ử d n ụ g 2.1. Thu t ậ toán Bresenham
Thuật toán Bresenham là thu t
ậ toán vẽ hình tròn đ n ơ gi n ả nh t ấ . Thu t ậ toán này b t
ắ đầu từ tâm hình tròn và s ử d n ụ g m t ộ công th c ứ đ n ơ giản để tính toán đi m ể tiếp theo trên đ n ườ g tròn. Công th c ứ tính toán đi m ể ti p ế theo trên đ n ườ g tròn nh ư sau: x = x_c + r * cos(t) y = y_c + r * sin(t) Trong đó:  x_c và y_c là t a ọ đ ộ tâm hình trò
 r là bán kính hình tròn  t là góc c a ủ đi m ể tiếp theo trên đ n ườ g tròn Thu t ậ toán Bresenham ho t ạ đ n ộ g nh ư sau: 1. Kh i ở t o ạ các bi n ế x, y, x_inc, y_inc, và t. 2. Đ t ặ x = x_c và y = y_c. 3. Tính t = 0. 4. L p ặ l i ạ các b c ướ 5 đ n ế 7 cho đ n ế khi t >= 360.
5. Tính x_inc = 1 if (x < x_c + r) else -1.
6. Tính y_inc = 1 if (y < y_c + r) else -1.
7. Vẽ điểm (x, y) trên màn hình. 8. Tăng t = t + 1. 2.2. Thu t ậ toán Midpoint Thu t ậ toán Midpoint c i ả thi n ệ đ ộ chính xác c a ủ thu t ậ toán Bresenham b n ằ g cách s ử dụng m t ộ ph n ươ g pháp chia đôi kho n ả g cách. Thu t ậ toán này b t ắ đ u ầ t ừ tâm hình tròn và s ử d n ụ g m t ộ công th c ứ đ ể tính toán đi m ể ti p ế theo trên đ n ườ g tròn. Công thức tính toán đi m ể ti p ế theo trên đ n ườ g tròn nh ư sau: 2. x = x_c + r * (2 * t / 360)
3. y = y_c + r * sqrt(3) * (1 - t * t / 900) Trong đó:  x_c và y_c là t a ọ đ ộ tâm hình trò
 r là bán kính hình tròn  t là góc c a ủ đi m ể tiếp theo trên đ n ườ g trò Thu t ậ toán Midpoint ho t ạ đ n ộ g nh ư sau: 1. Kh i ở t o ạ các bi n ế x, y, và t. 2. Đ t ặ x = x_c và y = y_c. 3. Đặt t = 0. 4. L p ặ l i ạ các b c ướ 5 đ n ế 7 cho đ n ế khi t >= 360.
5. Tính x = x_c + r * (2 * t / 360).
6. Tính y = y_c + r * sqrt(3) * (1 - t * t / 900).
7. Vẽ điểm (x, y) trên màn hình. 8. Tăng t = t + 1. Phần chạy chư n ơ g trình b n ằ g codebooks và gi i ớ thi u ề v ề codebooks
1. Code::Blocks là gì?
Đây là môi trường phát triển tích hợp (IDE) miễn phí được xây dựng để đáp ứng các
nhu cầu khắt khe nhất của người dùng trong lập trình các phần mềm được viết bằng
ngôn ngữ C, C++ hoặc Fortran. Nó có thể hoạt động được trên nhiều nền tảng như
MacOS, Linux hoặc Windows và hỗ trợ nhiều trình biên dịch như MS Visual C++ và GNU GCC.
Bên cạnh đó, Code::Blocks còn có giao diện thân thiện, tổ hợp tính năng đa dạng và
có thể dễ dàng thêm các tính năng mới. Điều này có được là do thiết kế trên khung
plugin cho phép FDE này mở rộng tính năng bằng cách cài đặt hoặc viết các mã
plugin. Ví dụ như chức năng biên dịch và gỡ lỗi trên Code::Blocks được bổ sung bởi các plugin. 2. H n ướ g dẫn cài đ t ặ Code::Blocks 2.1. B c ướ 1: T i ả Code::Blocks  Truy c p ậ đ n
ườ g link: http://www.codeblocks.org/downloads. Nh n ấ ch n
ọ “Download the binary release”  Ch n ọ n n ề t n ả g đang ho t ạ đ n ộ g c a ủ bạn (có 3 s ự l a ự ch n ọ là
Windows XP / Vista / 7 / 8.x / 10, Linux 32 and 64-bit và Mac OS X).b  T i ả xu n ố g cài đ t ặ v i ớ trình biên d c ị h GCC.b 2.2. B c
ướ 2: Cài đặt Code::Blocks  Ch y ạ cài đ t ặ đã t i ả và ch p ấ nh n ậ các tùy ch n ọ m c ặ đ n ị h  Xác minh đ n ườ g dẫn c a ủ trình biên d c ị h và trình g ỡ l i ỗ  Ví d ụ v i
ớ Code::Blocks 13.12 cho Windows:b Vào menu Settings, ch n ọ Compiler…. T i ạ Selected Compiler, b n ạ nh n ấ ch n ọ GNU GCC Compiler và ch n
ọ tab Toolchain Executables. Sau đó ki m ể tra m c
ụ Compiler’s Installation Directory.b Nó sẽ đ c ượ đ t ặ thành th ư m c ụ ph ụ có tên MinGW c a ủ th ư m c ụ cài đ t ặ Code::Blocks. Gi ả s ử n u ế Code::Blocks đ c ượ cài đ t ặ trong ổ C d i ướ d n ạ g v i ớ đ n ườ g d n
ẫ c: \ Program Files \ codeblocks, b n ạ hãy chuy n ể nó thành
c:\Program Files\codeblocks\MinGW.b Áp d n ụ g cách kiểm tra t n ươ g t ự v i ớ trình g ỡ l i ỗ . B n ạ cũng ch n ọ GDB/CDB debugger trong m c ụ Debugger…: t i ạ menu Settings và nh n ấ vào Default. T i ạ m c ụ Executable path, b n ạ nh p ậ tên đ n ườ g d n ẫ đâỳ đ ủ c a ủ gdb.exe, ch n ẳ g h n
ạ như c : \ Program Files \ codeblocks \ MinGW \ bin \ gdb.exe .b Cài đ t
ặ thành công Code::Blocks 3. G i ợ ý cách vi t ế ch n
ươ g trình C/C++ trong Code::Blocks Sau khi đã cài đ t
ặ Code::Blocks cho máy tính, vi c ệ ti p ế theo là hãy th ử t o ạ m t ộ d ự án cho t n ừ g n ứ g d n ụ g của b n ạ .b M t ộ dự án thông th n ườ g sẽ bao gồm nh n ữ g t p ệ có liên quan nh ư các mã nguồn, tệp tiêu đ ề và m t ộ s ố tài nguyên khác. B n ạ hãy ti n ế hành theo các b c ướ sau:b  Ch n
ọ File -> New -> Project…Thông th n ườ g b n ạ nên ch n ọ Console Application cho d ự án đ u ầ tiên c a ủ mình. Sau đó nh n ấ Go.b  Khi trình h n ướ g d n ẫ Console Application hi n ệ ra, b n ạ nh n ấ Next -> C++ -> Next. Trong m c ụ Project Title, b n ạ nh p ậ HelloProject. Trong m c
ụ Folder to create project in, đ t ặ thành th ư m c ụ đang ho t ạ đ n ộ g c a ủ bạn, ví d ụ như d:\project. Ch n ọ ch p ấ nh n ậ t t ấ c ả ph n ầ còn l i ạ và nhấn Next.b Lúc này, th ư m c ụ d
ự án Hello Project sẽ xu t ấ hi n ệ trong ổ D, m c ụ project v i ớ tên HelloProject.cbp. B n ạ có th ể ti p ế t c ụ t o ạ thêm các d ự án m i ớ trong th ư m c ụ project này.b Trong tr n ườ g Compiler, ch p ấ nhận tùy ch n ọ m c ặ đ n ị h c a ủ GNU GCC Compiler và nh n ấ k t ế thúc.b  Trong phần Management, ch n ọ tab Projects -> m ở r n ộ g nút d ự án Hello Project -> m ở r n
ộ g nút Source. Kích đúp chu t ộ vào main.cpp.b  Đ ể t o ạ ch n ươ g trình, ch n ọ Build trong menu Build  Đ ể ch y ạ ch n ươ g trình, ch n ọ Run trong menu Build 3. Phụ l c ụ : Sử d n ụ g các th ư vi n ệ nào c a ủ OpenLG; Code ch n ươ g trình
1.
Khai báo Thư viện và Định nghĩa:
Chương trình sử dụng các thư viện cần thiết cho đồ họa và nhập/xuất chuẩn.
#define PI 3.14159265359 định nghĩa hằng số PI. 2.Hàm tinhgoc:
Hàm này chuyển đổi góc từ độ sang radian. 3.Hàm vekhung:
Hàm này vẽ mặt đồng hồ với các vòng tròn đồng tâm và các đánh dấu.
4.Các Hàm kimgiay, kimphut, kimgio:
Các hàm này vẽ kim giây, kim phút và kim giờ của đồng hồ, tương ứng. 4. Hàm vekim:
Hàm này liên tục cập nhật vị trí của kim giờ, kim phút và kim giây dựa trên các
góc (d1, d2, d3) và vẽ chúng lại. 5. Hàm gocdau:
Hàm này tính toán các góc khởi đầu (d1, d2, d3) cho kim giờ, kim phút và kim
giây dựa trên thời gian đầu vào. 6. Hàm main:
Hàm main khởi tạo cửa sổ đồ họa, vẽ mặt đồng hồ và liên tục cập nhật vị trí kim đồng hồ.
7. Nhập dữ liệu từ Người Dùng:
Người dùng được yêu cầu nhập giờ, phút và giây.
Chương trình này sử dụng thư viện graphics.h để tạo một đồng hồ đơn giản với
kim giờ, kim phút và kim giây. Các kim được liên tục cập nhật dựa trên thời
gian hiện tại và cửa sổ đồ họa sẽ đóng khi người dùng thoát khỏi chương trình.
4.Kết quả thực hiện đề tài Ch n
ươ g trình trê cho phép chúng ta nh p ậ s ố gi ờ s ố phút s ố giây mà mình mong mu n ố đ ể đ n ồ g h ồ b t ắ đ u ầ ch y
Đây là sau khi chúng ta nh p ậ d ữ li u ệ và cho phép đ n ồ g h ồ b t ắ đ u ch y TÀI LIỆU THAM KHẢO
Google……………………………………………………………………………
Bing………………………………………………………………………………
Coccoc……………………………………………………………………………
Edge………………………………………………………………………………