Hướng dẫn lập trình đồ họa trên dev c

Ngày hôm nay tôi sẽ tổng hợp cho các bạn bộ thư viện mà tôi đang xài ngon với Dev-C++ 5.11 (bản IDE mới nhất tính đến thời điểm này). Và tất nhiên, tôi sẽ hướng dẫn các bạn cách cài đặt luôn.

Đầu tiên các bạn cần tải về trọn bộ thư viện + project mẫu + project templates trong một file "Graphics Dev C++.zip" duy nhất sau:

▸Sau khi xả nén, hãy chép 2 tập tin graphics.h và winbgim.h vào đường dẫn sau: C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include ▸Tiếp đó, chép tập tin libbgi.a vào đường dẫn: C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib ▸Cuối cùng, chép 2 tập tin 6-ConsoleAppGraphics.template và ConsoleApp_cpp_graph.txt vào đường dẫn: C:\Program Files (x86)\Dev-Cpp\Templates

Bây giờ, hãy mở Dev-C++ 5.11, chọn compiler là "TDM-GCC 4.9.2 32-bit Release".

Hướng dẫn lập trình đồ họa trên dev c

Tiếp theo, hãy mở 1 trong 2 project mẫu "Test Graphics.h" hoặc "Test Winbgim.h" và chạy thử. Chúc các bạn thành công!!!

Hướng dẫn lập trình đồ họa trên dev c

Nếu vẫn chưa rõ cách làm, có thể tham khảo video bên dưới!!!

Cảm ơn bạn đã đọc bài viết của Cuộc Sống Tối Giản. Đây là một blog cá nhân, được lập ra nhằm mục đích lưu trữ và chia sẻ mọi thứ hay ho theo chủ quan của chủ sở hữu. Có lẽ vì vậy mà bạn sẽ thấy blog này hơi (rất) tạp nham. Mọi chủ đề đều có thể được tìm thấy ở đây, từ tâm sự cá nhân, kinh nghiệm sống, phim ảnh, âm nhạc, lập trình... Phần lớn các bài đăng trong blog này đều được tự viết, trừ các bài có tag "Sponsored" là được tài trợ, quảng cáo, hoặc sưu tầm. Để ủng hộ blog, bạn có thể share những bài viết hay tới bạn bè, người thân, hoặc có thể follow Kênh YouTube của chúng tôi. Nếu cần liên hệ giải đáp thắc mắc hoặc đặt quảng cáo, vui lòng gửi mail theo địa chỉ [email protected]. Một lần nữa xin được cảm ơn rất nhiều!!!

– Hàm void initgraph(int *graphdriver, int *graphmode, char *s) dùng để khởi động chế độ đồ hoạ, trong đó s là đường dẫn tới tệp egavga.bgi, nếu s=””(rỗng) thì máy tự tìm tệp egavga.bgi trên thư mục chủ.

– Hàm int graphresult(void) cho mã lỗi khi khởi động đồ hoạ. Hàm cho giá trị bằng 0 tức là không có lỗi, cho giá trị khác không (mã lỗi) thì có lỗi.

– Hàm char *grapherrormsg(int k) cho lời giải thích bằng tiếng anh của lỗi đồ hoạ, có mã lỗi là k.

– Hàm void closegraph(void) dùng để đóng chế độ đồ hoạ.

  • Kiếm tiền Accesstrade, kiếm tiền tại nhà với Accesstrade.vn – Tiếp thị liên kết
  • MegaURL – Rút gọn link kiếm tiền có giá cao tại Việt Nam
  • Top những App kiếm tiền online trên điện thoại tốt nhất hiện nay

Ví dụ: Khởi động đồ hoạ và vẽ một hình chữ nhật.

include

include

include

include

int main() { int gd=0,gm=0, maloi; // gd : graphdriver, gm: graphmode, initgraph(&gd,&gm,""); // khoi dong do hoa if ( (maloi=graphresult()) != 0) { printf("khong the khoi dong do hoa \n"); printf("ma loi : %d \n",maloi); printf("Tran Van Nhuom : %s",grapherrormsg(maloi)); printf("\n an phim bat ky de thoat"); getch(); exit(1); } bar(50,50,200,300); getch(); closegraph(); return 0; }

Kết quả chạy đoặn chương trình.

Hướng dẫn lập trình đồ họa trên dev c

Các hàm đồ hoạ thông dụng trong C/C++

– Hàm int getmaxx(void): cho toạ độ màn hình x lớn nhất của kiểu màn hình đang dùng.

– Hàm int getmaxy(void): cho toạ độ màn hình y lớn nhất của kiểu màn hình đang dùng.

– Hàm int getmaxcolor(void): cho giá trị màu lớn nhất đang dùng.

– Hàm void setbkcolor(int color): đặt màu nền, màu nền ngầm định ngay sau khi khởi động đồ hoạ sẽ là màu đen BLACK (0).

– Hàm int getbkcolor(void): lấy màu nền hiện tại.

– Hàm void setcolor(int color ): đặt màu nét vẽ. Màu ngầm định ngay khi khởi động là WHITE (15).

– Hàm int getcolor(void): lấy màu vẽ hiện tại.

– Hàm void cleardevice(void): xoá toàn bộ màn hình đồ hoạ (chức năng tương tự clrscr() trong chế độ mode văn bản).

– Hàm void restorecrtmode (void): khôi phục lại chế độ màn hình như trước khi khởi động đồ hoạ.

– Hàm int getgraphmode(void): lấy kiểu màn hình đồ hoạ hiện tại.

– Hàm void setgraphmode(int mode): lựa chọn kiểu đồ hoạ khác với kiểu ngầm định đặt bởi initgraph, xoá màn hình.

– Hàm moveto(int x,int y): di chuyển con trỏ vẽ tới toạ độ (x,y) trên màn hình.

– Hàm int getx(void): cho toạ độ x của con trỏ vẽ hiện tại.

– Hàm int gety(void): cho toạ độ y của con trỏ vẽ hiện tại.

Các hàm dùng vẽ điểm, đường và miền

Hàm vẽ điểm

– Hàm void putpixel(int x, int y, int color) : tô điểm có toạ độ(x,y) trên màn hình theo màu color.

– Hàm int getpixel(int x, int y) : trả về màu của điểm ảnh tại vị trí có toạ độ (x,y).

Hàm vẽ đường

– Hàm void line(int x1,int y1,int x2,int y2) : vẽ đường thằng nối 2 điểm có toạ độ (x1,y1) và (x2,y2), sau khi vẽ xong con trỏ vẽ quay về vị trí cũ (không thay đổi vị trí)

– Hàm void lineto(int x,int y) : vẽ đường thẳng từ vị trí con trỏ vẽ hiện tại đến điểm có toạ độ (x,y),vẽ xong con trỏ tới điểm có toạ độ (x,y).

– Hàm void linerel(int dx, int dy) : vẽ đường thẳng từ vị trí con trỏ vẽ hiện tại (giả sử con trỏ vẽ hiện tại có toạ độ (x,y) ) đến điểm có toạ độ (x+dx , y+dy), vẽ xong con trỏ tới điểm mới.

– Hàm void setlinestyle(int kiểu, int mẫu, int độ_lớn) : quy định dạng, mẫu và độ lớn của nét vẽ + Kiểu có giá trị từ 0 đến 4 : + Độ_lớn xác định độ lớn của đường vẽ nó có hai giá trị : NORM_WIDTH (1) nét bình thường, THICK_WIDTH (2) nét vẽ to. + Mẫu sử dụng khi kiểu = 4 để tạo mẫu của đường vẽ theo ý người lập trình.

Hàm vẽ đường

– Hàm void arc(int x, int y, int gd, int gc, int r) : vẽ một cung tròn với tâm có toạ độ (x,y) , bán kính r, từ góc đầu tiên là gr đến góc cuối là gc (góc tính bằng độ). Màu của nét vẽ do hàm setcolor() đặt.

– Hàm void circle(int x, int y, int r) : vẽ đường tròn với tâm có toạ độ (x,y), bán kính r.

– Hàm ellipse(int x, int y, int gd, int gc, int rx, int ry) : vẽ một cũng ellipse với tâm là (x,y) từ góc đầu gd đến góc cuối gc, bán kính trục x là rx, bán kính trục y là ry.

– Hàm void rectangle(int x1, int y1, int x2, int y2) : vẽ một đường chữ nhật có đỉnh trên bên trái là (x1,y1) đỉnh dưới bên phải là (x2,y2).

Hàm vẽ miền

– Hàm void setfillstyle(int mẫu, int màu) : đặt mẫu tô và màu tô cho các hình đặc và miền đóng. +Màu có giá trị từ 0 đến 15 (xem lại ở bảng màu). + Mẫu có giá trị từ 0 đến 12 được cho ở bảng dưới. Với mẫu có giá trị 12 thì tự thiết kế mẫu tô theo 8 byte.

– Hàm void pieslice(int x, int y, int gd, int gc, int r) : vẽ và tô màu một hình quạt có tâm là (x,y), bá kính r, từ góc đầu gd đến góc cuối gc.

– Hàm void sector(int x, int y, int gd, int gc, int rx, int ry) : vẽ và tô màu một mảnh ellipse có tâm là (x,y), từ góc đầu đến gd, đến góc cuối gc, có bán kính trục x là rx, bán kính trục y là ry.

– Hàm fillellipse(int x, int y, int rx, int ry) : hàm vẽ và tô màu một elip có tâm (x,y) và bán kính hai trục là rx, ry.

– Hàm void bar(int x1, int y1, int x2, int y2) vẽ và tô màu một hình chữ nhật.

– Hàm void bar3d(int x1, int y1, int x2, int y2, int depth, int top) : vẽ một khối hộp chữ nhật, màu vẽ xác định bởi hàm setcolor. Mặt trước có toạ độ góc trên trái là (x1,y1) góc dưới phải là (x2,y2), được tô màu bởi hàm setfillstyle. Chiều sâu của khối hộp là depth điểm. Nếu top =0 (TOPOFF) thì hộp không có lắp.

Hàm vẽ đường gấp khúc, tô màu nền

– Hàm void drawpoly(int n, int a[]) : vẽ đường gấp khúc qua n điểm (x1, y1), (x2,y2), … , (xn,yn). Trong đó a={x1,y1,x2,y2,….xn,yn}. Nếu điểm cuối cùng trùng với điểm đầu ta được đường gấp khúc khép kín.

– Hàm void fillpoly(int n, int a[]) vẽ và tô màu một đa giác có n đỉnh (x1,y1), ( x2,y2) , … , (xn,yn). Trong đó a={x1,y1,x2,y2,….xn,yn}.

– Hàm floodfill(int x, int y, int màu_biên) : tô màu một miền kín trên màn hình được bao quanh bởi một đường có màu là màu_biên, (x,y) là một điểm tuỳ ý ở bên trong miền kín. Màu tô và mẫu tô xác định bởi hàm setfillstyle. Nếu (x,y) nằm ngoài miền kín thì vùng ngoài miền kín được tô. Nếu trên màn hình không có miền kín như đã chỉ thì cả màn hình được tô màu.

Viết chữ trong đồ hoạ

  • Khóa học lập trình C/C++ từ A-Z cho người mới – Giảm giá 40% hôm nay
  • Khóa học Java cơ bản dành cho người mới bắt đầu- Giảm 40% hôm nay
  • Khóa học lập trình Android từ cơ bản đến thành thạo – Giảm ngay 40%

Để viết chữ trong chế độ đồ hoạ thì trước tiên ta phải chọn font chữ, cỡ chữ, hướng in, căn chỉnh chiều dọc hay ngang đối với điểm in. Cụ thể ta sẽ dùng 6 hàm bên dưới để có thể ghi được văn bản trong màn hình Graphics.