STDIO
Tìm kiếm gần đây
    Nội dung
    0
    0
    Chia sẻ

    Vector và Ứng Dụng của Chúng

    Bài viết giới thiệu về những khái niệm của vector, từ đó giúp ứng dụng một cách thành công vào thực tế cuộc sống.
    Vũ Quang Huy

    Vũ Quang Huy

    26/09/2014 15/12/2020 6 phút đọc
    Vector và Ứng Dụng của Chúng

    Vector là gì?

    Trong toán học, người ta định nghĩa vector như sau:

    Vector là một đại lượng biểu diễn cho cả độ lớn và hướng.

    Ví dụ như để biểu diễn một lực nào đó tác dụng lên vật, ta có một vector gồm có 2 thành phần – độ lớn lực tác động lên vật đó và hướng tác động. Hay ta có thể dùng vector để biểu diễn vận tốc – tốc độ và hướng. Ngoài ra, ta còn có dạng vector thuần chỉ hướng. Đơn cử như việc diễn tả hướng nhìn của một camera trong không gian, hay ta muốn ám chỉ đến hướng mà ánh sáng di chuyển trong không gian.

    ss_1

    Ta có thể dễ dàng hình dung một vector trong không gian như thế nào. Tuy nhiên trong không gian hình học, ta không thể “hình dung” như thế. Vì vậy yêu cầu đặt ra là cần phải có một cách biểu diễn vector trong không gian hình học.

    Biểu diễn vector trong không gian

    Trong không gian, một vector được xác định bằng một đoạn thẳng với các tính chất như sau:

    • Độ dài đại diện cho độ lớn của vector
    • Hướng của vector (cả phương và chiều)

    Cần lưu ý là trong hầu hết các trường hợp ta không đặt nặng vấn đề vị trí của vector vì khi thay đổi vị trí của vector thì độ lớn và phương của chúng vẫn được giữ nguyên (2 tính chất để hình thành nên một vector).

    Chính vì tính chất này, do đó 2 vector bằng nhau khi và chỉ khi chúng có cùng độ lớn và cùng chỉ tới một phương xác định – như trong hình bên dưới ta có thể thấy được vector st là bằng nhau cho dù ta có thay đổi vị trí đặt của 2 vector thế nào đi nữa.

    ss_2
    Vector và hệ trục tọa độ

    Với những nội dung đã trình bày ở trên, ta đã có thể ứng dụng một số phương pháp hình học để tính toán với vector, điển hình như:

    ss_3

    Tuy nhiên, trong toán học đại số hay gần gũi hơn là trong hệ thống máy tính, ta phải tìm một cách nào giúp “hiện thực” các khái niệm vector và từ đó chúng ta có thể dùng các phương pháp số học mà tính toán các vector này.  Và nhờ các hệ trục tọa độ khác nhau – mà cụ thể trong bài viết này tôi muốn đề cập đến hệ trục không gian 3 chiều – 3D coordinate system, ta có thể áp dụng các phương pháp số học để thao tác với vector.

    Trong hệ trục tọa độ không gian 3 chiều, một vector được biểu diễn bởi 3 giá trị x, y và z.

    ss_4

    Giả sử ta có điểm A(xA, yA, zA) và điểm B(xB, yB, zB) trong không gian, để tính được vector AB ta áp dụng công thức sau:

    ss_7

    Một số phép toán cơ bản với vector

    Cộng, trừ hai vector và nhân vector với một số

    Giả sử ta có 2 vector v1 = (x1, y1, z1) và v2 = (x2, y2, z2), vậy tổng của 2 vector này được tính theo công thức sau:

    v = (x1 + x2, y1 + y2, z1 + z2)

    Tương tự như vậy, hiệu của 2 vector được tính với công thức:

    v = (x1 - x2, y1 - y2, z1 - z2)

    Lưu ý là tính chất giao hoán được áp dụng cho việc tính tổng 2 vector.

    Để dễ hình dung hơn, ta có thể lấy minh họa 1 trái bóng được tác dụng bởi các lực khác nhau. Nếu 2 lực này cùng hướng ta sẽ tìm được tổng lực bằng phép cộng hai vector, ngược lại nếu 2 lực tác động này ngược hướng nhau, ta sẽ tính được lực cuối cùng áp dụng lên trái bóng bằng cách trừ 2 vector lực với nhau

    Ngoài ra, ta còn có thể nhân vector với một số thực. Khi đó ta sẽ được một vector tỷ lệ.

    Độ lớn của vector và vector đơn vị

    Ta có độ lớn của vector v = (x, y, z) ký hiệu là ||v|| được tính bởi công thức sau:

    ||v|| = √(x2 + y2 + z2)

    Tuy nhiên, trong một số trường hợp ta chỉ quan tâm đến hướng của vector đó mà bỏ qua độ lớn của nó. Với trường hợp như vậy, ta mong muốn độ lớn của vector đó bằng 1 – những vector có tính chất như trên ta gọi chúng là vector đơn vị. Song song đó, việc chuyển một vector về thành vector đơn vị ta gọi là chuẩn hóa vector (normalize vector).

    Ta chuẩn hóa một vector thành vector đơn vị kí hiệu là  như sau:

    ss_17

    Tích vô hướng hai vector

    Giả sử ta có 2 vector v1 = (x1, y1, z1) và v2 = (x2, y2, z2) tích vô hướng của hai vector này (hay còn gọi là dot product vì được biểu diến bằng một dấu chấm) được tính bởi công thức sau:

    v1 . v2 = x1x2 + y1y2 + z1z2

    Bằng việc áp dụng các phương pháp hình học, ta chứng minh được mối quan hệ giữa tích vô hướng và góc giữa các vector này như sau:

    v1 . v2 = ||u|| . ||v|| . cos(θ)

    Dựa theo công thức trên, ta có thể suy ra một số đặc điểm của 2 vector khi có tích vô hướng của chúng:

    • Nếu v1 . v2 = 0 : 2 vector vuông góc với nhau.
    • Nếu v1 . v2 > 0 : góc giữa 2 vector nhỏ hơn 90 độ.
    • Nếu v1 . v2 < 0 : góc giữa 2 vector lớn hơn 90 độ.

    Tích có hướng hai vector

    Nếu như tích vô hướng cho ta biết được một số tính chất của 2 vector thì tích có hướng giúp ta tìm ra được vector pháp tuyến của mặt phẳng được tạo bởi 2 vector cho trước.

    Giả sử ta có 2 vector v1 = (x1, y1, z1) và v2 = (x2, y2, z2) tích có hướng giữa chúng được tính bằng công thức sau:

    v3 = v1 x v2 = (y1z2 - z1y2, z1x2 - x1z2, x1y2 - y1x2)

    Cần lưu ý thêm là hướng của vector này phụ thuộc vào hệ trục đang được sử dụng (bàn tay trái – left handed hay bàn tay phải – right handed)

    ss_26

    Lời kết

    Vector là một trong những kiến thức cốt lõi của lập trình đồ họa cả 2D và 3D, nhờ có vector ta có thể dễ dàng hiện thực nên một không gian như ý mình muốn. Có thể nói nếu không có sự hiện diện của vector thì gần như ngành đồ họa máy tính, cũng như các ứng dụng thực tiễn liên quan đến đồ họa ngày nay đã không ra đời.

    Qua bài viết này, hy vọng có thể giúp cho bạn đọc hiểu sâu hơn về sự ra đời của vector cũng như một số các phép toán thông dụng trên vector.

    Tham khảo

    [1] Introduction to 3D Game Programming with DirectX 11 – Frank Luna (Author) – ISBN: 9781936420223 – Pub Date: January 2012 – Pages: 600

    0 Bình luận
    Khi bạn nhấn vào sản phẩm do chúng tôi đề xuất và mua hàng, chúng tôi sẽ nhận được hoa hồng. Điều này hỗ trợ chúng tôi có thêm kinh phí tạo nhiều nội dung hữu ích. Tìm hiểu thêm.
    STDIO

    Trang chính

    Công ty TNHH STDIO

    • 30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
      +84 28.36205514 - +84 942.111912
      developer@stdio.vn
    • 383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
      Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012
    ©STDIO, 2013 - 2021