Thắc mắc đồ họa trong c++

Hiện tại em đang có một bài tập lớn viết bằng ngôn ngữ c++, yêu cầu phải có đồ họa, em đang làm cái đề tài thi trắc nghiệm. Em muốn hỏi mọi người tài liệu để tạo đồ họa và cách ghép nối code của em, em cũng có tìm hiểu về MFC nhưng em cảm thấy nó quá sức đối với em vì em chưa học đến, phần đồ họa thầy cô trên trường cũng không dạy cho sinh viên nên em muốn nhờ mọi người tư vấn giúp em.

1 Like

Em nghiên cứu sử dụng Qt đi, dễ dùng hơn MFC. Mà sau này ra trường có kinh nghiệm Qt cũng là một lợi thế so với các bạn khác. Chịu khó nghiên cứu Qt tầm 1 tuần là làm được. Nhưng khi làm được rồi, em có thể tự tin ghi chữ Qt vào trong hồ sơ xin việc. Chắc chắn sẽ cạnh tranh hơn rất nhiều so với các bạn khác.

4 Likes

Em cảm ơn anh nhiều, em sẽ nghiên cứu rùi có gì thắc mắc em sẽ hỏi tiếp :smile:

2 Likes

Trước hết em có thể hiểu Qt là một Framework dùng để viết chương trình có giao diện, hoặc các chương trình đồ họa sử dụng C++. Để sử dụng Qt em phải download thư viện Qt về.

Về chương trình để viết code C++ dùng Qt framework thì em có 2 lựa chọn, hoặc là em dùng Visual Studio hoặc là em dùng Qt Creator. Trong trường hợp của em, để cho dễ anh nghĩ em nên dùng hẳn Qt Creator. Viết toàn bộ source code của mình trên Qt Creator.

Trong báo cáo môn học, em nên nêu rõ mình dùng Qt Creator. Như vậy giáo viên sẽ hiểu và chấm bài em dễ hơn. Khi download Qt Creator em có 2 lựa chọn. Hoặc là dùng bản miễn phí hoặc dùng bản tính phí 30 ngày. Nếu project của em nhắm dài hơn 30 ngày thì em dùng bản miễn phí đi.

Về phần kiến thức để có thể làm được Qt anh nghĩ nó cũng tốn thời gian tương đương hoặc thậm chí ít hơn so với MFC. Vậy nên anh nghĩ lựa chọn Qt là tốt nhất vì anh đã từng làm qua cả Qt và MFC nên anh có thể khẳng định điều này.

Em có thể contact @ngohuy để hỏi thêm nếu có thắc mắc. Theo anh biết thì Huy đang làm Qt.

4 Likes

ý bạn là demo một app đơn giản thì mình nghĩ đọc 4 bài về MFC trong blog trên bạn có thể làm được . Còn về Qt tuần này mình cũng nhào vô vọc thử luôn :smiley:

1 Like

Qt rất dễ bạn chỉ cần vào help của nó xem doc là làm được, thật ra không cần học gì nhiều. Chỉ cần nắm chắc lập trình OOP. Mình tin chắc sau một tuần bạn sẽ master được cách làm việc với nó.

4 Likes

@ngohuy Sao em cài qt mà khi tạo Project nó không có Qt Gui Application vậy ạ. Em thấy video hướng dẫn hầu hết đều viết code trong Qt Gui Application, nếu em tạo Project trong console thì lỗi một số thư viện.

@tuantien8979 Bạn tạo như thế nào vậy? Bạn có File > New File or Project > chọn QWidget Project > Qt Gui Application chưa ah?

Bạn thử làm kĩ giống như trong hướng dẫn này: https://www.youtube.com/watch?v=HiOOWDb4YjE

1 Like

@ngohuy Em xem video rùi nhưng em thấy không có những cái giống như trong video, em nghĩ chắc do phiên bản của em, vì em dùng bản free chứ không phải bản 30 ngày. Không biết có phải không nữa :frowning: , http://qt-project.org/downloads đó là trang em tải qt

Cái phiên bản trong video hình như là bản cũ. Nếu em mới download là bản mới rồi. Em tìm tìm thử xem. Suy nghĩ theo hướng tìm cái gì đó để tạo GUI Application là được.

tuantien8979 Bạn pritvate message cho mình code để teamview nhé

2 Likes

Em sent message rùi nha anh @ngohuy

@tuantien8979 mình chưa thấy có PM

anh cho e hỏi!
.Net framework là 1 tập các thư viện, và openGL là 1 trong các thư viện đó hả?

Đúng vậy: https://en.wikipedia.org/wiki/.NET_Framework

Không, OpenGL là thư viện Open Source viết bằng C++

giữa Qt creator với visual studio cái nào nặng máy hơn anh?
em học openGL, mà muốn thử sử dụng Qt creator cho biết :smiley:

chắc là Visual Studio. Máy anh hay xài thường là máy công ty nên anh ít để ý đến mấy cái này. khoe máy mạnh kaka

1 Like

Mình thực hiện code :

for(int y=0;y<__height;y++) // __height là chiều cao bức ảnh.
{
     for(int x=0;x<__stride;x+=4) // stride là số byte dữ lieu trên 1 line ngang của ảnh = width*4
     {
          img.scanline(y)[x]++; // tang màu Blue lên 1 đơn vị
          img.scanline(y)[x+1]++; // tang màu Green lên 1 đơn vị
          img.scanline(y)[x+2]++; // tang màu Red lên 1 đơn vị
     }
} 

Nhưng trong QT nó chạy chậm quá. Mặc dù mình đã build ở Release.
Nó chạy chậm ngang với C#. Có lúc nó còn chậm hơn cả C#. Mình sai ở đâu nhỉ ?

Nếu bức ảnh càng lớn độ phân giải càng cao thì chạy chậm là điều tất nhiên. Ví dụ bức ảnh 1800 X 1600 thì ứng với 1 dòng y sẽ là 1600 dòng x => 288000 lần thực hiện :v:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?