BÀI 5 KẾT NỐI C/C++ VỚI MAPLE/MATLAB VÀ TỐI ƯU HOÁ CHƯƠNG TRÌNH MÔ PHỎNG doc

50 768 7
BÀI 5 KẾT NỐI C/C++ VỚI MAPLE/MATLAB VÀ TỐI ƯU HOÁ CHƯƠNG TRÌNH MÔ PHỎNG doc

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BÀI KẾT NỐI C/C++ VỚI MAPLE/MATLAB VÀ TỐI ƯU HỐ CHƯƠNG TRÌNH MƠ PHỎNG Tóm tắt • Việc sử dụng hàm tính tốn Maple, Matlab hay gói phần mềm tính tốn khác chương trình C/C++ có nhiều lợi ích Bài giới thiệu khả • Phần thứ hai bàn số cách để tối ưu hoá chương trình mơ Nội dung Kết nối C/C++ với Maple/Matlab • Những lợi ích việc kết nối • Kết nối với Maple • Kết nối với Matlab Tối ưu hố chương trình mơ • Tối ưu hố tính tốn • Tối ưu hố mơ hình hiển thị • Tối ưu hố đồ hoạ NHỮNG LỢI ÍCH CỦA VIỆC KẾT NỐI Những lợi ích việc kết nối • Các hệ chương trình tính tốn Maple, Matlab sử dụng rộng rãi tính tốn kỹ thuật • Các cơng cụ có thư viện hàm tính tốn mạnh, chưa kể có nhiều thư viện chương trình viết mơi trường (SpaceLib, Robotics Toolbox…) • Các hệ chương trình cho phép kết nối chương trình viết C/C++ (hoặc Fortran, Java…) kết nối, tương tác với chúng Những cách khác để kết nối • Có số kịch kết nối C/C++ Maple/Matlab Một chương trình C/C++ độc lập (standalone) gọi hàm tính tốn Maple/Matlab Người dùng Maple/Matlab xuất đoạn mã tính tốn thành mã C/C++ để sử dụng chương trình C/C++ độc lập Người dùng Maple/Matlab gọi hàm tính tốn viết C/C++ thư viện liên kết động (các file dll Windows) • Bài giảng tập trung chủ yếu vào kịch thứ nhất: Gọi hàm Maple/Matlab C/C++ KẾT NỐI VỚI MAPLE Kết nối với Maple • Chương trình cài đặt Maple copy tệp tin cần thiết phép lập trình kết nối với chương trình C/C++ • Các tệp tin cần thiết \extern\include\maplec.h \bin.win\maplec.lib Trong thư mục cài đặt Maple (ví dụ C:\Program Files\Maple 13) Một số ví dụ có thư mục \samples\OpenMaple\ • Trên Windows sử dụng Visual C++ để lập trình kết nối Khi chạy chương trình, máy tính cần có Maple cài đặt sẵn Các bước kết nối với Maple: Chuẩn bị • Chuẩn bị – Để sử dụng hàm cần cho kết nối, chương trình C/C++ cần có dịng #include “maplec.h” – Và để kết nối thư viện cần thiết cần có dịng #pragma comment(lib, "maplec.lib") • Chú ý: Để Visual C++ tìm hai tệp maplec.h maplec.lib trên, cần đặt đường dẫn tương ứng vào môi trường phát triển – Trong Visual C++ chọn menu Tools/Options… – Trong cửa sổ chọn Projects and Solutions, VC++ Directories – Cần thay đổi Include files Library files Các bước kết nối với Maple • Một chương trình C/C++ cần thực bước sau để gọi hàm Maple Gọi hàm StartMaple() để khởi tạo máy tính tốn Maple Gọi hàm EvalMapleStatement() để thực lệnh Maple Ngồi sử dụng hàm khác maplec.h Gọi hàm StopMaple() sau kết thúc tính tốn 10 Icosahedrons (still 20 triangles) One subdivision, error = 3.81% Icosahedrons (still 20 triangles) Two-fold subdivisions, error = 1.49% Icosahedrons (20 Triangles) Three-fold subdivisions, error = 0.84% Icosahedrons (still 20 triangles) Four-fold subdivisions, error = 0.67% Hình cầu: Sai số giảm theo số lần chia nhỏ 0.12 0.1 Sai số 0.08 0.06 0.04 0.02 0 Số lần chia Cách thực n01 n0 t0 v01 v0 t01 n1 d v1 Nếu véc-tơ tiếp t0 hay t1 không xác định, tính từ véc-tơ pháp 𝑡0 = 𝑑 t1 𝑛0 ×𝑑 ×𝑛0 𝑛0 ×𝑑 ×𝑛0 , 𝑡1 = 𝑑 𝑛1 ×𝑑 ×𝑛1 𝑛1 ×𝑑 ×𝑛1 Tính toạ độ trung điểm v01=h(0.5) véc-tơ tiếp t01 sử dụng đường cong Hermite ℎ(𝑠) = (2𝑠3 − 3𝑠2 + 1)𝑣0 + (𝑠3 − 2𝑠2 + 𝑠)𝑡0 + (−2𝑠3 + 3𝑠2)𝑣1 + (𝑠3 − 𝑠2)𝑡1 Lặp lại cho cạnh tam giác, chia tam giác thành Đệ quy thoả mãn (sau khoảng lần không khác biệt mấy) Xuất liệu bề mặt dạng file SAT (ACIS) 42 Xuất liệu bề mặt dạng file SAT (ACIS) • SAT dạng file mơ tả mơ hình vật thể chiều ACIS1 • SAT có cấu trúc mở, chương trình sử dụng để đọc/ghi file này2 • Các phần mêm CAD 3D phổ biến hỗ trợ việc xuất nhập file SAT • Phần mềm mơ đọc file thể trực tiếp mơ hình 3D ACIS http://en.wikipedia.org/wiki/ACIS 43 SAT File Format http://local.wasp.uwa.edu.au/~pbourke/dataformats/sat/sat.pdf Xuất liệu bề mặt dạng mặt NURBS 44 Xuất liệu bề mặt dạng mặt NURBS • Thư viện lập trình ObjectARX AutoCAD cho phép truy cập thông tin biểu diễn bề mặt vật thể • Ta đọc thơng tin bề mặt xuất dạng tham số biểu diễn mặt cong NURBS1 • OpenGL cung cấp hàm để hiển thị bề mặt NURBS2 NURBS on Wikipedia http://en.wikipedia.org/wiki/Non-uniform_rational_B-spline 45 An Introduction to NURBS and OpenGL http://goo.gl/iWNK2 Câu hỏi? TỐI ƯU HOÁ ĐỒ HOẠ 47 Tối ưu hố đồ hoạ • Tính hiệu chương trình mơ OpenGL cải thiện phần cứng (card đồ hoạ) phần mềm • Hầu hết card đồ hoạ cao cấp hỗ trợ OpenGL • Phần mềm OpenGL viết để tăng tốc độ sử dụng nhiều kỹ thuật 48 Một số kỹ thuật tối ưu hố chương trình OpenGL • Đa xử lý: Dùng nhiều CPU (lập trình song song) • Thay đổi chất lượng hình ảnh (như nói trên) • Tổ chức liệu chương trình hợp lý – Ví dụ hàm cần đến thơng số toạ độ chạy nhanh dùng toạ độ dạng mảng (glVertex3fv(v) nhanh glVertex3f(x,y,z)) • Giảm thiểu số lần gửi thông tin đồ hoạ xuống card đồ hoạ: – Ví dụ: Dùng lệnh glVertexPointerEXT() để gửi danh sách tất điểm xuống card đồ hoạ lần dùng glDrawArraysEXT() để vẽ tam giác • Dùng display list để đưa hình ảnh vào đệm đồ hoạ • Giảm số nguồn sáng có thể, nguồn sáng điểm 49 Câu hỏi? ... dung Kết nối C/C++ với Maple/Matlab • Những lợi ích việc kết nối • Kết nối với Maple • Kết nối với Matlab Tối ưu hố chương trình mơ • Tối ưu hố tính tốn • Tối ưu hố mơ hình hiển thị • Tối ưu hố... • Kết nối với Matlab Tối ưu hố chương trình mơ • Tối ưu hố tính tốn • Tối ưu hố mơ hình hiển thị • Tối ưu hố đồ hoạ NHỮNG LỢI ÍCH CỦA VIỆC KẾT NỐI Những lợi ích việc kết nối • Các hệ chương trình. .. chương trình C/C++ có nhiều lợi ích Bài giới thiệu khả • Phần thứ hai bàn số cách để tối ưu hố chương trình mơ Nội dung Kết nối C/C++ với Maple/Matlab • Những lợi ích việc kết nối • Kết nối với

Ngày đăng: 28/06/2014, 05:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan