C++ hình họa không gian: C++ Vector3D

C++ là một trong những ngôn ngữ lập trình hướng đối tượng, với một danh sách phong phú các thư viện open source.

Chúng ta có thể sử dụng C++ cho rất nhiều các ngành ứng dụng…

Một trong số đó là ngành lập trình mô phỏng đồ họa 2d, 3d.

Nói đến mô phỏng đồ họa, thì là nói đến việc sử dựng các đối tượng hình học, như point, line, rectange, block3d….

Do đó để xây dựng được các dự án đồ họa, người ta bao giờ cũng phải xây dựng được các thư viện hỗ trợ tính toán đồ họa.

Ví dụ xây dựng cách hàm vẽ các đối tượng hình học như vẽ line, vẽ điểm, vẽ lưới, vẽ các đối tượng hình học đại diện cho một thực thể nào đó, ví dụ như nhà cửa, cầu, đường…

Hôm nay tôi sẽ giới thiệu với các bạn các xây dựng một project c++ chuyên xử lý cho các vấn đề hình học.

Với bài đầu tiên, chúng ta cùng học các xây dựng 1 lớp vector3d.

C++ vector 3d.

I. Lý thuyết cơ bản.

1. Tạo project c++ trên visual studio 2015.

Các bạn hãy tạo 1 project c++ console application trên VS 2015 như minh họa dưới đây.

Tên các bạn đặt tùy ý.

Project dạng console.

Đôi tên file được tạo ra thành file main.cpp

Build thử và đảm bảo project build thành công.

2. Tạo một class đặt tên class là:  TVector3D.

Các bạn có thể đặt tên khác, nhưng nên có chữ vector3d hoặc vec3d, hoặc point3d.

3. Thêm header guard.

Tôi thích sử dụng header guard hơn là pragam one nên tôi sẽ thêm header guard.

4. Một class vector cần những gì.

a. Tọa độ x,y,z của một vector với kiểu số thực.

Thông thường biến của một thành viên nên được khuyến cáo để private hoặc protected.

Nhưng với class vector và point, có một sự ưu ái cho phép để quyền truy cập public.

b. Các phép toán cơ bản,  cộng trừ, nhân chia, phép gán, phép so sánh bằng

+ hai vector cộng nhau ra một vector mới

+ hai vector trừ nhau ra một vector mới (thực ra là cộng với một vector đổi chiều)

+ nhân 1 vector với một hệ số, chia vector cho 1 hệ số

c. tối giản vector về vector đơn vị.

d. tính góc giữa 2 vector.

e. Tích vô hướng và tích có hướng giữa 2 vector.

Các hàm sử lý khác mà bạn có thể nghĩ ra.

II. Code thực thi.

1. File header.

 

2. File cpp

Ok đó là toàn bộ lớp Vector3D.

 

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.